欢迎来到天天文库
浏览记录
ID:42093371
大小:164.20 KB
页数:5页
时间:2019-09-07
《选择列表中的列无效,因为该列没有包含在聚合函数或GROUPBY子句中ORA-00937:不是单》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、使用聚合函数Z后,同时还想查询其他字段,应该如何呢?经常我们会发生下列错误在sql屮出现:选择列表屮的列无效,因为该列没有包含在聚合函数或GROUPBY了旬中。在oracle中出现:ORA-00937:不是单组分组函数问题到底出在哪呢?在SQL中,我们假设查询某一门课程的平均成绩。二)结果□肖息平均成绩1而^^]如果同时还向输出课程号就采用F列语句:4selectavggradeas平均成绩coursecodefromgradewherecoursecode"1LOOOOLr1—弘消息盤歹隣綢^;;:d!Su;窓d:観效,因为该列没有包含在聚合酗或GROUPby
2、子句中。但是错误来了,原因是缺少了groupby分组语句,groupby字句用于对数据记录进行分类汇总,即按指定字段把具有相同值的记录通过汇总计算合并成一条记录加上groupbycoursecode就能达到要去了。select一二gradeas半均成绩coursecodefromgradewherecoursecod皀'二000C:'jgroupbycoursecodeIVff♦S结果區■消息平均成纟责coursecode[1『87.6oo6o(f[100001•・••••Groupby的字段必须岀现在select的字段中??这是大多数人的想法。我们来验证一下吧
3、!!selectavcgradeas平均成绩fromgrade(?roupbycoursecode三1结果厶消息平均成绩276350000368.333333483.550000597.500000684.000000787.000000876.583333978.6000001065000000同样我们也能有查询结果,说明并II:必须的••.•select_「ggradeas平均fromgradewherecoursecode:•LOG3011^roupbycoursecode二]结果匕津患平均成绩1在Oracle中也存在-•样的问题查询一个部门的平均、最高、
4、最低、总工资。如果同时要输出部门号:(未加groupby子句)selectavg(sal),max(sal),min(sal),sum(sal),jobfromempwherejoblike'MA%';&5SelectdualSelectdualSelectXSelecte«p出现错误。加上groupby之后问题解决selectavg(sal),max(sal),min(sal),sum(sal),jobfromempwherejoblike'groupbyjob
5、:Select4u«lSelectdudSelectSelect«»pSelectSelectSe
6、lectdutlStltcl邸・a♦->gA
7、4>lQ3ttl*IAW(SALL!*AX(SALLl«IN(SALLISUM(SAL)IJOB►112758.33333333333297524508275IANAGER总结:当你使用聚合函数的时候,如果你没有输出除聚合函数以外的字段,那么不加groupby也无所谓,因为只有一组,当然你也可以加。但当你耍查询出非聚合函数字段的时候,一定加上groupby字段这样就不会出错了。
此文档下载收益归作者所有