У меня есть проблема с запросом, который работает на следующих talble:SQL Проблема с моим запросом
+---------------------------+
| ID NAME SALARY DEPARTMENT |
+---------------------------+
| 1 John 100 Accounting |
| 2 Mary 200 IT |
+---------------------------+
Я пытаюсь для того чтобы достигнуть, это найти запрос, что приведет к следующему:
Для каждого работодателя найдите среднюю зарплату тех сотрудников, чья заработная плата составляет либо на 100, либо на 100 меньше зарплаты данного работника, и они работают в одном отделе.
До сих пор у меня есть это:
SELECT E1.ID, AVG(E2.SALARY) FROM E1 EMP, E2 EMP
WHERE ABS(E1.SALARY-E2.SALARY)<= 100 AND E1.DEPARTMENT = E2.DEPARTMENT
GROUP BY E1.NAME
Правильно ли это?
Есть ли разница в производительности между этими двумя операциями? – uksz
Btw, спасибо, что указал на мою ошибку в том, что касается зарплаты одного и того же сотрудника! – uksz
@uksz Да, потому что ваш запрос сначала выводит * декартово произведение * таблицы сотрудников для себя и * затем * применяет условия фильтрации. –