Учебники

T-SQL — предложение GROUP BY

Предложение SQL Server GROUP BY используется совместно с оператором SELECT для организации идентичных данных в группы.

Предложение GROUP BY следует за предложением WHERE в инструкции SELECT и предшествует предложению ORDER BY.

Синтаксис

Ниже приведен основной синтаксис предложения GROUP BY. Предложение GROUP BY должно соответствовать условиям в предложении WHERE и должно предшествовать предложению ORDER BY, если оно используется.

SELECT column1, column2 
FROM table_name 
WHERE [ conditions ] 
GROUP BY column1, column2 
ORDER BY column1, column2 

пример

Предположим, что таблица CUSTOMERS содержит следующие записи:

ID  NAME       AGE       ADDRESS          SALARY 
1   Ramesh     32        Ahmedabad        2000.00 
2   Khilan     25        Delhi            1500.00 
3   kaushik    23        Kota             2000.00 
4   Chaitali   25        Mumbai           6500.00 
5   Hardik     27        Bhopal           8500.00 
6   Komal      22        MP               4500.00 
7   Muffy      24        Indore           10000.00 

Если вы хотите узнать общую сумму заработной платы по каждому клиенту, то следующим будет запрос GROUP BY.

SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS 
   GROUP BY NAME;

Приведенная выше команда выдаст следующий вывод.

NAME        sum of salary 
Chaitali    6500.00 
Hardik      8500.00 
kaushik     2000.00 
Khilan      1500.00 
Komal       4500.00 
Muffy       10000.00 
Ramesh      2000.00

Давайте теперь рассмотрим следующую таблицу CUSTOMERS, имеющую следующие записи с повторяющимися именами.

ID  NAME       AGE       ADDRESS           SALARY 
1   Ramesh     32        Ahmedabad         2000.00 
2   Khilan     25        Delhi             1500.00 
3   kaushik    23        Kota              2000.00 
4   Chaitali   25        Mumbai            6500.00 
5   Hardik     27        Bhopal            8500.00 
6   Komal      22        MP                4500.00 
7   Muffy      24        Indore            10000.00 

Если мы хотим узнать общую сумму заработной платы по каждому клиенту, то следующим будет запрос GROUP BY.

SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS 
   GROUP BY NAME 

Приведенная выше команда выдаст следующий вывод.