Фильтрация и сортировка
Для чего используется оператор HAVING?
Оператор HAVING используется для фильтрации групп строк после применения оператора GROUP BY.
Основные моменты:
-
Применение: Фильтрует результаты агрегатных функций (например,
SUM,COUNT). -
Различие с
WHERE:WHEREфильтрует строки до группировки, аHAVING— после.
Пример:
SELECT department, COUNT(*)
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
Этот запрос выбирает департаменты, в которых количество сотрудников больше 5.
В чем различие между операторами 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фильтрует данные после группировки.
Для чего используется оператор 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 позволяет сводить данные по определённым критериям и
применять агрегатные функции к группам данных.