PostgreSQL group by 取时间最新一条数据

PostgreSQL 窗口函数 About 291 words

需求

表中有一列会出现多次,对应多条记录。

场景

登录表中,一个用户一条可能会有多次登录记录,取最早的一条记录。

还需要查出登录表中的其他所有字段。

SQL

使用row_number()窗口函数,使用用户唯一标识作为窗口分区,分区中按登录时间生序排序,然后再外层取row_number=1的就是最早的记录。

select * from (
select *, row_number() over(partition by user_id order by login_time desc) as row_id
from login_log) tmp
where row_id = 1
Views: 16 · Posted: 2024-12-20

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓


Today On History
Browsing Refresh