SQL中GROUP BY用法及注意事项

在 SQL 中,GROUP BY 语句是一种用于对数据进行分组和汇总的工具,它可以将数据按照一个或多个列进行分组,然后对每个组应用聚合函数(如 SUM、AVG、MIN、MAX 等)来计算汇总值。
1.基本语法:
SELECT column1, column2, aggregate_function(column3)  
FROM table_name  
WHERE condition  
GROUP BY column1, column2;  
其中,aggregate_function可以是 COUNT、SUM、AVG、MIN、MAX 等聚合函数。
注意SELECT后的字段名必选要在GROUP BY后面的字段名中,但COUNT、MAX等计数算法不受此限制。
2.注意事项:
GROUP BY 语句中,用于分组的列必须是检索列或有效的表达式(不可以是聚集函数)。如果在 SELECT 语句中使用表达式,则必须在 GROUP BY 中使用相同表达式,不可用别名。除聚集计算语句以外,SELECT 语句中每个列都必须在 GROUP BY 中给出(不能使用别名)。
在 GROUP BY 语句中,如果需要对多个列进行分组,可以使用逗号分隔多个列名,例如GROUP BY column1, column2。
如果需要在 GROUP BY 语句中使用聚合函数,需要在聚合函数前加上聚合函数的关键字,例如SUM(column3)。
在 GROUP BY 语句中,可以结合 HAVING 子句来过滤分组后的数据,例如GROUP BY column1, column2 HAVING aggregate_function(column3) > some_value。
在 SQL Server 中,虽然支持 GROUP BY ALL”,但 Microsoft SQL Server 的未来版本中将删除 GROUP BY ALL,避免在新的开发工作中使用 GROUP BY ALL。在 Access 中是不支持 Group By All”的,但 Access 中同样支持多列分组。
同时需要注意:语句书写顺序
如果语句中同时有WHERE、JOIN、GROUP BY、ORDER BY、LIMIT。
SELECT <字段名> 
FROM <表名>
JOIN <表名>
WHERE <筛选条件>
GROUP BY <字段名>
ORDER BY <字段名>
LIMIT <限制行数>
需要按照上述书写顺序书写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值