gpt4 book ai didi

sql - Postgres : getting latest rows for an array of keys

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

我有一个简单的事件日志表:

uid | event_id | event_data
----+----------+------------
1 | 1 | whatever
2 | 2 |
1 | 3 |
4 | 4 |
4 5 |

如果我需要给定用户的最新事件,那很明显:

SELECT * FROM events WHERE uid=needed_uid ORDER BY event_id DESC LIMIT 1

但是,假设我需要数组中每个用户 ID 的最新事件。例如,对于上表和用户 {1, 4},我期望事件 {3, 5}。在不求助于 pgSQL 循环的情况下,这在普通 SQL 中是否可行?

最佳答案

Postgres 特定的解决方案是使用distinct on,这通常比使用窗口函数的解决方案更快:

select distinct on (uid) uid, event_id, event_data
from events
where uid in (1,4)
order by uid, event_id DESC

关于sql - Postgres : getting latest rows for an array of keys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26968384/

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