📌  相关文章
📜  T-SQL-GROUP BY子句(1)

📅  最后修改于: 2023-12-03 15:35:14.255000             🧑  作者: Mango

T-SQL GROUP BY子句

T-SQL GROUP BY子句用于将结果集按照一个或多个列进行分组。通常与聚合函数一起使用,以便基于这些分组计算总数、平均值等聚合值。

语法
SELECT column1, column2, ..., aggregate_function(column_name)
FROM table_name
WHERE condition
GROUP BY column1, column2, ..., columnN;
  • column1, column2, ..., columnN:用于分组的列;
  • aggregate_function:聚合函数,如SUM、COUNT、AVG、MIN、MAX等;
  • column_name:用于计算聚合函数的列;
  • table_name:要查询的表;
  • condition:查询条件。
示例

以订单表为例,每个订单包含订单号、客户、商品和数量等信息。我们需要统计每个客户购买的商品总数和平均数量,并按客户进行分组。

SELECT Customer, SUM(Quantity) AS TotalQuantity, AVG(Quantity) AS AvgQuantity
FROM Orders
GROUP BY Customer;

执行该查询后,将返回一个结果集,其中每个客户只出现一次,并显示其购买的商品总数和平均数量。

注意事项
  • GROUP BY子句中列的顺序很重要,它确定了分组的方式;
  • 在SELECT语句中,只能出现分组列和聚合函数列,而其他列必须在GROUP BY子句中声明;
  • 如果一个列在SELECT语句中既没有出现在GROUP BY子句中,也没有出现在聚合函数中,那么SQL Server将无法确定该列的值,因此查询将抛出错误;
  • GROUP BY子句可以与HAVING子句一起使用,HAVING子句用于筛选聚合结果,只返回满足特定条件的分组;
  • 如果将NULL值包含在分组列中,那么将会将它们分为一组。
结论

T-SQL GROUP BY子句是在SQL查询中非常有用的功能,它允许按一或多个列进行分组,并计算聚合函数的值。使用GROUP BY子句可以轻松地执行复杂的统计和分析操作,从而使程序员能够更好地理解和处理数据。