В этом учебном пособии вы узнаете, как использовать оператор GROUP BY в SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
GROUP BY SQL Server (Transact-SQL) используется в операторе SELECT для сбора данных по нескольким записям и группировки результатов по одному или нескольким столбцам.
Синтаксис
Синтаксис GROUP BY в SQL Server (Transact-SQL):
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
Рассмотрим пример запроса SQL Server GROUP BY, который использует функцию SUM.
Например:
1 2 3 |
SELECT product_name, SUM(quantity) AS "Total quantity" FROM products GROUP BY product_name; |
В этом примере SQL Server GROUP BY используется функция SUM для возврата product_name и общего количества (для product_name).
Поскольку вы указали один столбец (поле product_name) в операторе SELECT, который не инкапсулирован в функцию SUM, вы должны использовать предложение GROUP BY. Поэтому поле product_name должно быть указано в предложении GROUP BY.
Пример использования функции COUNT
Рассмотрим, как мы можем использовать предложение GROUP BY с функцией COUNT.
Например:
1 2 3 4 |
SELECT manager_id, COUNT(*) AS "Number of employees" FROM employees WHERE last_name = 'Колесников' GROUP BY manager_id; |
В этом примере GROUP BY используется функция COUNT для возврата manager_id и количества employees (сотрудников), чье last_name - 'Колесников'.
Пример использования функции MIN
Рассмотрим, как мы можем использовать предложение GROUP BY с функцией MIN.
Например:
1 2 3 |
SELECT product_type, MIN(quantity) AS "Lowest quantity" FROM products GROUP BY product_type; |
Этот пример GROUP BY использует функцию MIN для возврата product_type и минимального количества для этого product_type.
Пример использования функции MAX
Наконец, рассмотрим, как мы можем использовать GROUP BY с функцией MAX.
Например:
1 2 3 |
SELECT department, MAX(salary) AS "Highest salary" FROM employees GROUP BY department; |
В этом примере используется функция MAX для возврата имени каждого department (отдела) и максимальной salary (заработной платы) в department.