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扫描下方二维码关注公众号和小程序↓↓↓
Loading...