T-SQL GROUP BY
在 Transact SQL 中,GROUP BY 子句用于将数据分组。它跟随 WHERE 子句进入查询的 SELECT 语句。它具有聚合函数 (MAX、MIN、AVG、SUM 和 COUNT) 来根据一个或多个列对结果进行分组。
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 |
---|---|---|---|---|
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 |