在 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 <限制行数>
需要按照上述书写顺序书写。
SQL中GROUP BY用法及注意事项
最新推荐文章于 2023-11-24 01:34:48 发布