求解,SQL group by的一个问题。

——来自scott表。
select deptno,ename
from emp
group by deptno
其中deptno,ename都是emp表中的列名,但是老师说group by之后select中只能出现分组后的整体信息,不能出现组内的详细信息,说这是错的。但是分组后ename不也是group里面的整体信息吗?本人小白才开始接触SQL,想不明白,求大神开导下,谢谢。

group by之后select的列必须是聚合的列,比如用了max min count sum函数得到的列,不能是普通字段,道理很简单,你分组以后每个组是很多记录,没有分组的字段的值可能不同,你选择字段,你选择的是哪个呢?

select deptno,ename
from emp
group by deptno 是按deptno来分组,那么当你有多个相同的deptno,但是ename不同时他只会显示第一条的结果,其他的不显示,group by 是跟聚会函数一起使用才体现他的功能

你一个组里所有name一样啊?name是个人信息,不是整体信息

group by与聚合函数一起用,你的sql里只有列名,没有函数