首页 > 编程语言 > 详细

order by 与group by 之间排序问题

时间:2016-10-11 21:14:57      阅读:124      评论:0      收藏:0      [点我收藏+]

比如说我现在的表结构是这样的:

 技术分享

alterTime   是修改的时间

deviceId    是设备的id

 我先简单的插入几条记录  select 一下  结果是这样的:

 技术分享

 

 

我现在想得到  每一个设备最后维修的时间  

开始是这么写的

select * from gbk.new_table group by deviceId order by alterTime desc limit 1;

结果却是这样的:

 技术分享

 

然后我修改一下:

select * from gbk.new_table group by deviceId order by alterTime desc;

没有按照我想要的时间排序(因为执行的时候是先执行group by  也就是说我的order by 根本没有起作用)

 技术分享

于是我嵌入了一个子查询:

select * from (select * from gbk.new_table order by alterTime desc ) as a group by deviceId;

得到了正确的结果

 

 

结论就是:group by 得到的记录 就是根据正常从上往下顺序的第一个

而你先order by  然后在group by 得到的记录就是你想排序得到的第一个结果

 

order by 与group by 之间排序问题

原文:http://www.cnblogs.com/moon1223/p/5950696.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!