SQL中用group by去重复且按照其他字段排序

本文介绍了使用SQL解决数据分组及排序问题的有效方法。针对如何去除重复项并按特定字段进行排序的需求,文章提供了实用的解决方案,如利用MAX()函数结合GROUP BY实现数据的正确排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:合并某一个字段的相同项,并且要按照另一个时间字段排序。

例子:

一开始用
       select city from table group by city order by date desc

会报错因为date没有包含在聚合函数或 GROUP BY 子句中

然后用将date放入group by中:

        select city from table group by city,date order by date desc

得到结果

但是得到的结果还是有重复的,没有解决

如果不按照时间排序,就会影响我之后的操作,所以百度了很久,终于找到了解决方法:

正确写法:

        select city from table group by city order by max(date) desc

发现很神奇的结果出来了

然后又找了一些资料,发现max()神奇的地方:

        select city,max(date) as d1 from table group by city,d1 order by d1 desc

这里写在前面还能看到时间排序

如果还有更好的方法大家一起交流。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值