SQL语句中GROUP BY的问题

今天查询数据库时用到集合函数sum(drp),遇到问题:

百度后,确定如下问题:当select后面查询字段有sum(drp)以外的字段时,必须使用group by函数,对数据进行排序,且查询字段中除sum(drp)以外的字段都必须作为分组字段出现在group by后面。反过来,group by后面可以出现分组字段a(必须是查询表中的字段),但是a可以不是select后面的查询字段。

举例如下:

select sum(drp) from sljc_ylz_m  不会报错

select stcd,sum(drp) from sljc_ylz_m 报错:ora-00937:不是单分组函数

select stcd,sum(drp) from sljc_ylz_m group by stcd 不会报错

select stcd,stnm,sum(drp) from sljc_ylz_m group by stcd 报错:ora-00937:不是单分组函数

select stcd,stnm,sum(drp) from sljc_ylz_m group by stcd,stnm  不会报错

select stcd,sum(drp) from sljc_ylz_m group by stcd,stnm 当stnm属于表sljc_ylz_m中的字段时,不会报错。

原文地址:https://www.cnblogs.com/pengjw/p/4043920.html