首页 > 代码库 > order by 与group by 之间排序问题
order by 与group by 之间排序问题
比如说我现在的表结构是这样的:
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 之间排序问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。