T-SQL Group By字句

精华
小牛编辑
145浏览
2023-03-14

在 Transact SQL 中,GROUP BY 子句用于将数据分组。它后面跟着 WHERE 子句进入查询中的 SELECT 语句。它具有聚合函数(MAX、MIN、AVG、SUM 和 COUNT)以按一列或多列对结果进行分组。

GROUP By Clause 的语法如下:
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
01    William Shakespeare    32    Karachi    7000.00
02    Alpoura    24    London    3000.00
03    Jackson    34    Paris    1200.00
04    HarperMachmohan    20    New York    1500.00
05    EllaDevgun    22    Islamabad    3400.00
06    David Warner    23    Turkey    4400.00
07    Mason    26    Saudi Arabia    5050.00

如果想知道每个客户的工资总额,那么可以使用 GROUP BY 查询实现。

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

执行上面查询语句,得到以下结果 -

NAME    SALARY
William Shakespeare    7000.00
Alpoura    3000.00
Jackson    1200.00
Harper Machmohan    1500.00
Ella Devgun    3400.00
David Warner    4400.00
Mason    5050.00

假设 CUSTOMERS 表中包含不同名称的记录,如下所示 -


ID    NAME    AGE    ADDRESS    SALARY
01    William Shakespeare    32    Karachi    7000.00
02    Alpoura    24    London    3000.00
03    Jackson    34    Paris    1200.00
04    HarperMachmohan    20    New York    1500.00
05    EllaDevgun    22    Islamabad    3400.00
06    David Warner    23    Turkey    4400.00
07    Mason    26    Saudi Arabia    5050.00

如果想知道每个客户的工资总额,那么可以执行以下 GROUP BY 查询。

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

执行上面查询语句,得到以下结果 -

ID    AGE    SALARY
Alpoura    24    7400.00
Ella Devgun    22    3400.00
Harper Machmohan    20    2700.00
Mason    26    5050.00
William Shakespeare    32    10000.00