2016-01-06 5 views
-3

Гипотетически, у меня есть таблица, EMPLOYEES, который имеет SALARY столбец, который состоит из:Как я могу решить это упражнение SQL?

30250 
35260 
7340 
60185 

Кроме того, гипотетически, у нас есть человек, который вычисляет эти оклады на калькуляторе с разбитым ключом «0». Так записи являются:

325 
3526 
734 
6185 

Теперь я поручено найти разницу фактического среднего и «сломанный ключ» в среднем, чтобы увидеть, насколько этот человек был отключен от. Как я могу получить среднее значение «сломанного ключа»?

+0

Как выглядит ваш запрос до сих пор? –

+1

Я чувствую, что уже прочитал это. Ваш последний вопрос с Little Debbie закрылся, и вы снова спросили его? –

+0

Я удалил его и снова задал вопрос таким образом, чтобы устранить всю двусмысленность. Это не школьное задание. Я практикую SQL на веб-сайте, и я пытаюсь выяснить, как решить эту проблему. Однако я ценю предположение. – juice

ответ

6

Вы можете использовать функцию replace удалить нули, а затем просто вычесть две средние:

SELECT AVG(salary) - AVG(REPLACE(salary, '0', '')) AS mistake 
FROM employees 
+0

[Подтверждено] (http://sqlfiddle.com/#!9/e9164/1) –

+0

Не знаю о функции замены. Большое спасибо! Я понял, что есть более простой способ, чем бросать из int в char, удалить 0, а затем отбросить его. – juice

+0

@juice Да, я знаю, я тоже не поклонник этих неявных бросков, но я не мог придумать «математический» способ сделать это. – Mureinik

0

Вам необходимо найти, какая строка находится на условиях ошибки? Вы можете использовать «левое соединение» предложение, нахождение которым данные из первой таблицы не на другой стол