gpt4 book ai didi

MySQL/按日期对数据进行排序和分组

转载 作者:行者123 更新时间:2023-11-29 20:57:50 24 4
gpt4 key购买 nike

我正在尝试将数据分组给我,他们只想要每个 ID 的最后一条记录,我该怎么办?

通过这种方式解决我的问题:

SELECT Table1.id, Last(Table1.status) AS LastStatus, Last(Table1.date) AS LastDate
FROM Table1
GROUP BY Tabele1.id;

我的 table

 ____________________________
| ID | STATUS | DATE |
|123456| 1 | 15/04/2016 |
|123456| 2 | 16/04/2016 |
|123456| 3 | 17/04/2016 |
|123456| 1 | 18/04/2016 |
|654321| 3 | 19/04/2016 |
|654321| 4 | 20/04/2016 |
|654321| 2 | 21/04/2016 |
|98765 | 3 | 22/04/2016 |
|98765 | 1 | 23/04/2016 |
|98765 | 2 | 24/04/2016 |
|98765 | 3 | 25/04/2016 |
------------------------------

期望的结果是每个ID的最后一条记录。

 ____________________________
| ID | STATUS | DATE |
|123456| 1 | 18/04/2016 |
|654321| 2 | 21/04/2016 |
|98765 | 3 | 25/04/2016 |
------------------------------

最佳答案

您可以将 where in 与子查询一起使用,该子查询返回 id 的最大日期

select * from my_table 
where (id, date) in ( select id, max(date)
from my_table
group by id )
order by date

或者如果您需要按状态订购

select * from my_table 
where (id, date) in ( select id, max(date)
from my_table
group by id )
order by status

关于MySQL/按日期对数据进行排序和分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37491025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com