关于sql group by使用的一些注意点

2021/4/14 19:25:14

本文主要是介绍关于sql group by使用的一些注意点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、GROUP BY 和 ORDER BY一起使用时,ORDER BY要在GROUP BY的后面。

2、ORDER BY 的字段在GROUP BY 后面必须有

3、在select需要查询的语句中选中的字段,必须出现在group by子句中

4、group by不一定要配合聚合函数,但是如果没有聚合函数,则必须满足第三点

 

group by 阶段之后的所有阶段(having、select、orderby等)的操作对象将是组,而不是单独的行。每个组最终也表示查询结果集中的一行,就是说group by 之后的子句中指定的所有表达式务必保证为每个组只返回一个标量值。而聚合函数只为每个组返回一个值,所以一个元素如果不在group by列表中,就只能作为聚合函数的输入

 

错误示例:

select b.ID,b.scode,b.STITLE,c.S_CITY_NAME,count(*) from test1 a, test2 b, test3 c
where a.ID = b.ID and c.I_STAFF_ID = a.I_STAFF_ID
group by b.ID

oracle报错: ORA-00979: 不是 GROUP BY 表达式

原因:不满足上述第三点

 

改正后:

select b.ID,max(b.scode),max(b.STITLE),max(c.S_CITY_NAME),count(*) from test1 a, test2 b, test3 c
where a.ID = b.ID and c.I_STAFF_ID = a.I_STAFF_ID
group by b.ID

基于字段看实际需求加上聚合函数

 



这篇关于关于sql group by使用的一些注意点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程