Фильтрация и сортировка
Для чего используется оператор HAVING?
Оператор HAVING используется для фильтрации групп строк после применения оператора GROUP BY.
Основные моменты:
-
Применение: Фильтрует результаты агрегатных функций (например,
SUM,COUNT). -
Различие с
WHERE:WHEREфильтрует строки до группировки, аHAVING— после.
Пример:
SELECT department, COUNT(*)
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
Этот запрос выбирает департаменты, в которых количество сотрудников больше 5.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- Собеседование на позицию Backend Developer Python + Django Middle #2 · 34:23–34:42Видео · Ответ кандидата
Кандидат объясняет, что HAVING применяют после GROUP BY для фильтрации сгруппированного результата.
В чем различие между операторами HAVING и WHERE?
Различие между операторами
HAVING
и
WHERE
:
-
WHERE:-
Фильтрует строки до группировки.
-
Применяется к отдельным строкам.
-
Используется с неагрегированными данными.
SELECT department, COUNT(*) FROM employees WHERE salary > 50000 GROUP BY department; -
-
HAVING:-
Фильтрует группы строк после группировки.
-
Применяется к агрегатным функциям.
-
Используется с результатами
GROUP BY.
SELECT department, COUNT(*) FROM employees GROUP BY department HAVING COUNT(*) > 5; -
Итог:
-
WHEREфильтрует данные перед группировкой. -
HAVINGфильтрует данные после группировки.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- Собеседование на позицию Backend Developer Python + Django Middle #2 · 34:23–34:42Видео · Ответ кандидата
Кандидат отличает WHERE до группировки от HAVING после GROUP BY.
Для чего используется оператор ORDER BY?
ORDER BY используется для сортировки результатов запроса по одному
или нескольким столбцам.
Основные моменты:
-
Сортировка по возрастанию: По умолчанию, если не указано иное.
SELECT * FROM employees ORDER BY name; -
Сортировка по убыванию: Используется ключевое слово
DESC.SELECT * FROM employees ORDER BY name DESC; -
Сортировка по нескольким столбцам:
SELECT * FROM employees ORDER BY department, salary DESC;
ORDER BY позволяет организовать вывод данных в нужном порядке.
Ссылки для изучения
Для чего используется оператор GROUP BY?
GROUP BY используется для группировки строк, имеющих одинаковые
значения в указанных столбцах, и выполнения агрегатных функций на каждой группе.
Основные моменты:
-
Группировка данных:
-
Группирует строки по указанным столбцам.
-
Используется с агрегатными функциями, такими как
COUNT,SUM,AVG,MAX,MIN.
-
-
Пример:
SELECT department, COUNT(*) FROM employees GROUP BY department;
В этом примере строки группируются по значению столбца department, и для каждой группы вычисляется количество строк.
GROUP BY позволяет сводить данные по определённым критериям и
применять агрегатные функции к группам данных.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- Мок-интервью Java-разработчика для Junior уровня · 4:04–4:30Мок-собеседование · Ответ кандидата
Кандидат объясняет GROUP BY как объединение строк выборки в группы по значениям одного или нескольких полей.







