请教group by ,谢谢!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/04/28 00:39:55
无论在什么情况下
进行分组SELECT 语句中出现的字段只能是在GROUP BY 中出现过的才可以— — 除非你在SELECT 子句中不指定任何字段

怎么理解,请举例子说明!!!

就是只有在被分组的列才可以select出来,否则就要使用聚合函数
比如
表user
id name age
1 aaa 20
2 bbb 21
3 ccc 20
4 ccc 20
5 bbb 22
select id,name from user group by name就错了。
因为同一个name bbb有两个id,数据无法决定选哪一个。
select max(id),name from user group by name
select min(id),name from user group by name
select count(id),name from user group by name
都是对的,总而言之,要唯一确定到一个值时才可以用select选择出来

select id,sex from class1 group by sex ,id
这是一个分组的例子。

解释:
group by 以性别分组,在selec 语句中要显示两列id和sex。虽然是以sex来分组,因为要同时显示两列,所以group by 要全部写上。

一般遇到这种问题都不会这样写。会加上一个子查询。