MySQL: 按日期获取列行顺序的不同值

MySQL: Get distinct values of column row order by date

我正在尝试获取一组按日期降序排序且列 (zone_id) 的值不重复的结果,但我找不到正确的查询。

我真正感兴趣的列是第 2 列(zone_id),但我已经显示了 id 列,以便更清楚地显示我想要获得的结果。

简单按日期排序的table有如下数据:

id zone_id updated_at
206 63 2021-05-11 09:22:19
205 63 2021-05-11 09:21:53
204 22 2021-05-11 09:21:38
5 33 2021-05-10 10:45:09
6 23 2021-05-10 10:45:09
3 3 2021-05-10 10:45:02
137 63 2021-03-06 17:02:25
143 67 2021-03-03 20:24:14
98 14 2020-11-06 14:49:44
177 29 2020-08-16 20:09:26

因此,在这种情况下,它应该接收的值应该是:

63, 22, 33, 23, 3, 67, 14, 29

我尝试了以下查询但没有成功:

SELECT zone_id, id, updated_at 
FROM table 
GROUP BY zone_id 
ORDER BY updated_at DESC

shows: 23, 33, 3, 67, 84, 63, 88, 98,...

SELECT DISTINCT zone_id, id, updated_at 
FROM table 
ORDER BY updated_at DESC

shows: 63, 63, 22, 33, 23, 3, 63, 67,...

拜托,有人能告诉我我做错了什么吗?

非常感谢您:

认为您希望row_number()为每个区域选择一行然后排序:

select t.*
from (select t.*,
             row_number() over (partition by zone_id order by updated_at desc) as seqnum
      from t
     ) t
where seqnum = 1
order by updated_at desc;

你可以像下面那样做 -

SELECT ZONE_ID FROM
(
SELECT zone_id, updated_at 
FROM table 
GROUP BY zone_id 
) T
ORDER BY updated_at DESC