SQL GROUP BY 分组
时间:2018-11-15 17:44:45 来源:igfitidea点击:
在本教程中,我们将学习如何使用SQL GROUP BY子句将行按照列或表达式的值进行分组并汇总。
SQL GROUP BY子句介绍
GROUP BY子句用于根据列或表达式的值将SELECT语句返回的行分组为多个汇总组。
然后可以对每个组使用诸如SUM、AVG、MIN、MAX或COUNT这样的聚合函数来输出汇总的信息。
GROUP BY的语法如下:
SELECT column1, column2, aggregate_function(expression) FROM table_name WHERE condition GROUP BY column1;
使用SUM函数的SQL GROUP BY示例
要获取每个产品的总单位成本,请使用GROUP BY子句和SUM函数,如下所示:
SELECT productid,sum(unitcost) FROM item GROUP BY productid
数据库引擎执行以下步骤:
首先,检查GROUP BY子句,并根据每个产品id将产品分组。
其次,对每个组使用SUM函数计算单位成本的总数。
使用COUNT函数的SQL GROUP BY示例
下面的查询使用带有COUNT函数的GROUP BY子句来选择每个产品类别中的产品数量。
SELECT category,count(productid) FROM product GROUP BY category
使用AVG函数的SQL GROUP BY示例
您可以使用GROUP by子句和AVG函数作为以下查询来检查每个产品的平均单位成本:
SELECT productid,FLOOR(AVG(unitcost)) FROM item GROUP BY productid
FLOOR函数用于获取不大于参数的最大整数值。
使用MIN和MAX函数的SQL GROUP BY 示例
选择每种产品项的最小和最大价格如下:
SELECT productid,MIN(listprice),MAX(listprice) FROM item GROUP BY productid
SQL GROUP BY 和 ORDER BY同时使用示例
GROUP BY子句与ORDER BY子句一起用于对组进行排序。例如,你可以按产品数量对产品类别进行排序:
SELECT category,count(productid) FROM product GROUP BY category ORDER BY COUNT(productid) DESC;