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

如果你想知道每个顾客的工资总额,那么llowing将是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 [salary of salary] FROM CUSTOMERS 
 GROUP BY NAME

上述命令将产生以下输出.

NAME        sum of salary 
Hardik      8500.00 
kaushik     8500.00 
Komal       4500.00 
Muffy       10000.00 
Ramesh      3500.00