您的位置:首页 > 数据库 > MySQL

mysql group by问题

2015-02-27 00:00 337 查看
摘要: mysql 写group by 很随意,不需要关注select的字段有几个,但是会查出一些不是想要的数据

一个表 table

A B C

1 101 200

1 102 203

2 103 205

2 104 204

select A,B,C from table group by A

结果

A B C

1 101 200

2 103 205

如果B,C不是聚合函数的话,他会默认为 A相同情况下,显示默认顺序下的第一条

select A,max(B),c from table group by A

结果

A B C

1 102 200

2 104 205

这种 有函数的时候 就会出现奇怪的数据

B 是 求的最大值,而C还是第一条数据的C值,如果最大值 就是第一条数据,则这条数据才是正确的,否则就乱了.

所以对于这种情况,要想用group by显示 每个A下的最后一条记录

就只能用子查询

select A,B,C from(

select A,B,C from table order by id(自增字段) desc) t

group by t.A

这时数据就正确了。

仅此记录一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql group by