不是说的group by后面有什么就要在select里面有有什么吗?

select avg(sal) from emp group by deptno
这个为什么在select里面没有就可以?
select deptno,avg(sal) from emp group by deptno
这个也是,请高人详解一下。。。

原话大概是:

select中非聚集函数的列,都要在 group by 中

反过来是不成立的

看看第二个,deptno,就出现在 group by中了。
而第一个,deptno没有在select中,并不与这个规定冲突;按照deptno分组,计算平均工资。只是deptno不显示在返回列表中,无法看到是哪个部门的平均工资罢了。追问

额,天呐,好简单。。
我再问一个问题,分就给你。
怎么在emp表以job分组显视emp表中的所有数据?

追答

group by 是和聚集函数组合在一起使用的,是进行数据统计使用的。

既然进行数据统计使用,那么肯定就不能显示所有信息了。

所以我怀疑你要的只是 order by job,把所有相同job的数据放到一起看罢了。

温馨提示:答案为网友推荐,仅供参考