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中的字段时,不会报错。