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