关于mysql group by 排序相关遇到的问题

php 专栏收录该内容
17 篇文章 0 订阅

今天要给业务方出一个接口,调取数据的逻辑是 从最新发布的口碑中提取出前 15个车系,刚开始接到需求感觉 很简单嘛,一个sql就可以搞定啦,于是立马打开编辑器洋洋洒洒的敲了几行,感觉真的是一气呵成,可是看到结果我诧异了,感觉不太对啊。。

于是,我开始检查我的sql,

SELECT A.pserid,A.create_time FROM (select pserid,create_time from rp_reputation where source<3 and status=4 order by create_time desc) A group by A.pserid  limit 15;

感觉没问题啊,我从已经排好序的结果集中,聚合出前15个车系就行了啊。。可是结果出来的时候还是不对

 然后开始百度一下 找问题。。

再试一下 SELECT A.pserid,A.create_time FROM (select pserid,create_time from rp_reputation where source<3 and status=4 order by create_time desc) A group by A.pserid order by null  limit 15;

依旧不行。。

用用  distinct ..  仍然不对|||

算了,请教一下专业的DBA童鞋吧,最后,人家给了我最终有效的sql

select pserid,max(create_time) from rp_reputation where source<3 and status=4 group by pserid order by max(create_time) desc limit 15;

先把车系id分好组,然后在 每个组内选出 发布时间最大的那条记录,按照这条记录排序,完美解决!

 

 

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值