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
这时数据就正确了。
仅此记录一下。
一个表 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中的排序问题
- mysql group by排序问题
- mysql GROUP BY 与 ORDER BY数据排序问题
- ubuntu mysql group by 问题
- mysql 5.7.17 ,group by问题
- mysql group by排序问题
- linux上,mysql使用聚合函数group by 时报错:SELECT list is not in GROUP BY clause and contains nonaggre的问题
- mysql GROUP BY 代替DISTINCT 遇到的问题及解决
- Mysql group by 排序问题
- mysql5.7 group by 查询问题
- MySql 数据库group by 的用法,order by 嵌套使用。优化问题
- mysql和sqlserver的order by 和group by和distinct引起的兼容性问题 max函数解决
- Mysql group by top N的问题
- mysql中group by 兼容问题
- mysql :group by 与order by 共同使用时排序问题,小心utf8的排序
- 转摘之Mysql中Group by子句结合count使用的效率问题
- Mysql中Group by子句结合count使用的效率问题
- Mysql group by top N的问题
- mysql 新版本出现group by 语句不兼容问题
- MySQL中使用group by进行分组时,子查询中order by失效的问题