? А как вы ответите на элементарный вопрос с собеседования? / Материал [club197837145|IT Resume]
Элементарный вопрос с собеседования. Объясните разницу между WHERE и HAVING в SQL? Проверим совпадает ли ваш ответ с тем, чего ожидают рекрутеры?
? Условие HAVING используется для фильтрации результатов запроса на основе агрегированных значений. Например, сгруппируем сотрудников по отделам, а потом выберем те, где сотрудников больше 10:
SELECT department, COUNT(employee_id)
FROM employees
GROUP BY department
HAVING COUNT(employee_id) > 10;
? WHERE, в свою очередь, используется для фильтрации результатов на основе отдельных строк, до формирования групп. Например, сразу отфильтруем сотрудников с неподходящей заработной платой, и потом посчитаем количество подходящих сотрудников по отделам:
SELECT department, COUNT(employee_id)
FROM employees
WHERE salary > 50000
GROUP BY department;
Без сомнений, и WHERE, и HAVING можно и нужно использовать вместе. Если до группировки можно отфильтровать неподходящие строки, то зачем их оставлять в HAVING?
SELECT department, COUNT(employee_id)
FROM employees
WHERE salary > 50000
GROUP BY department
HAVING COUNT(employee_id) > 10;
✅ Также стоит заметить, что HAVING вполне может использоваться и без GROUP BY. Например, подобный запрос (без группировки) вернет нам одну строку - общее количество сотрудников, и только в том случае, если оно больше 10:
SELECT COUNT(employee_id)
FROM employees
HAVING COUNT(employee_id) > 10;
❓ А теперь вопрос! Отработает ли данный код?
DELETE FROM table
HAVING COUNT(value) > 10;
- - - - - - -
?? Найдите среднемесячное количество продаж, используя WHERE и HAVING —-> https://vk.cc/ckSnRL
#sql@pylounge #job@pylounge #data_base@pylounge