在SQL查询GROUP BY语句用于什么?

在SQL查询GROUP BY语句用于什么?,第1张

在关系数据库的SQL查询中,GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。\x0d\x0a下面举例说明:\x0d\x0a学生成绩表score中有学号xh、班级bj、总成绩zcj字段,现在需要统计本次考试各班有多少人参加\x0d\x0aselect count(xh),bj from score group by bj

使用 COUNT() 、 AVG() 、 MIN() 、 MAX() 等聚合函数可实现对分组的过滤,聚合函数会分别对各组数据进行聚合。

以下面的orders表为例:

按照status列将订单分组并计算各组包含的订单条目数:

查询结果为:

再以一个orderdetails表为例:

若希望计算每个订单中包含商品的总价,则有

查询结果为:

GROUP BY 语句中还可以使用函数或表达式来处理数据。

例如,从上述orders表和orderdetails表中查询每年订单总额:

查询结果为:

HAVING 语句可以过滤出分组后满足特定条件的数据。

例如,查找出总额大于60000的订单

查询结果为:

注意

WHERE 语句和 HAVING 语句虽然都可以对数据进行过滤,但用法是不同的, HAVING 语句可以用于过滤分组, WHERE 语句只能过滤行,不能过滤分组;因此 WHERE 语句应在 GROUP BY 之前使用。例如:

查询结果为:

且 WHERE 语句中不能使用别名或者表达式,例如下列写法是不合法的:

其意义就是分组,group

by

后加上表中某一关键字即可(如group

by

studentID,表示根据学号将以查询出的结果再按学号分组)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10811598.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存