В этом учебном пособии вы узнаете, как использовать PostgreSQL оператор GROUP BY с синтаксисом и примерами.
Описание
PostgreSQL оператор GROUP BY используется в операторе SELECT для сбора данных по нескольким записям и группировки результатов по одному или нескольким столбцам.
Синтаксис
Синтаксис для оператора GROUP BY в PostgreSQL:
aggregate_function (expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2,... expression_n;
Параметры или аргументы
- expression1, expression2,... expression_n
- Выражения, которые не заключены в агрегатную функцию и должны быть включены в предложение GROUP BY.
- aggregate_function
- Это может быть агрегатная функция, например sum, count, min, max или avg.
- tables
- Таблицы, из которых вы хотите получить записи. В операторе FROM должна быть указана хотя бы одна таблица.
- WHERE conditions
- Необязательный. Условия, которые должны быть выполнены для записей, которые будут выбраны.
Пример - использование функции sum
Рассмотрим пример PostgreSQL запроса GROUP BY, в котором используется функция sum.
В этом PostgreSQL примере GROUP BY используется функция sum для возврата department (названия отдела) и "Salaries for department" (общей заработной платы для отдела).
1 2 3 |
SELECT department, sum(salary) AS "Salaries for department" FROM employees GROUP BY department; |
Поскольку в вашем операторе SELECT вы указали один столбец (поле department), который не инкапсулирован в функцию sum, вы должны использовать оператор GROUP BY. Поэтому поле department должно быть указано в операторе GROUP BY.
Пример - использование функции count
Рассмотрим, как мы могли бы использовать оператор GROUP BY с функцией count.
В этом примере GROUP BY функция count используется для возврата department (отдела) и "Number of employees" (количества сотрудников для этого отдела), которые имеют status 'Active'.
1 2 3 4 |
SELECT department, count(*) AS "Number of employees" FROM employees WHERE status = 'Active' GROUP BY department; |
Пример - использование функции min
Давайте теперь посмотрим, как мы можем использовать оператор GROUP BY с функцией min.
В этом примере GROUP BY используется функция min для возврата department (названия отдела) и "Lowest salary" (минимальной зарплаты в отделе).
1 2 3 |
SELECT department, min(salary) AS "Lowest salary" FROM employees GROUP BY department; |
Пример - использование функции max
Наконец, давайте посмотрим, как можно использовать оператор GROUP BY с функцией max.
В этом примере GROUP BY используется функция max для получения department (названия отдела) и "Highest salary" (максимальной зарплаты в отделе).
1 2 3 |
SELECT department, max(salary) AS "Highest salary" FROM employees GROUP BY department; |