永发信息网

关于Oracle写SQL语句,提示的 不是单组分组函数的一个疑问

答案:2  悬赏:80  手机版
解决时间 2021-01-28 16:32
  • 提问者网友:喧嚣尘世
  • 2021-01-28 09:49
在测试那些SQL规则的时候,发现了这样一个问题(用的表是oracle自带的scott用户下的表),规则是如果select字段中单行函数与分组函数混用,就得使用GROUP BY分组,可问题出来了,如下:
select deptno,max(count(*)) from emp group by deptno --如果我这样写,就会提示不是单组分组函数
如果这样写:
select max(count(*)) from emp group by deptno --就是把deptno字段去掉,这样就不会报错,正常显示结果了,这是为什么呢?
最佳答案
  • 五星知识达人网友:归鹤鸣
  • 2021-01-28 10:04
不知道你要干什么,你是求某列最大值还是某张表的最大值,如果是某张表的话,你后面的语句就是没有问题的select后面接的是栏位名,‘*’则表示所有栏位与单个栏位冲突
全部回答
  • 1楼网友:十年萤火照君眠
  • 2021-01-28 11:17
select deptno,max(count(*)) from emp group by deptno 其中max(count(*))相当于2次分组,那么对应的select 中的其他列也需要进行2次分组,比如说: select max(deptno),max(count(*)) from emp group by deptno 原因很简单,sql语言就面向集合的,如果求出来max(count(*)),那么deptno需要对应的是哪一条呢?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯