postgres窗口函数实例(取出每日中前N条数据) 博客分类: postgresql
程序员文章站
2024-02-25 08:42:10
...
假设现有一批数据,字段中包含date_id,数据格式yyyyMMdd. 现在需求为需要取出每天中前N条数据,那么sql来了(用到窗口函数):
create temp table dddd(id serial , date_id int , name varchar(20));
insert into dddd(date_id , name) values (20160301 , 'name1'),(20160301 , 'name2'),(20160301 , 'name3'),(20160302 , 'name4'),(20160302 , 'name5') ;
select id , date_id , name
from
(
select * , row_number() over(partition by date_id order by id ) as row_id from dddd
) as t
where t.row_id <= 2 ;
结果:
1;20160301;"name1"
2;20160301;"name2"
4;20160302;"name4"
5;20160302;"name5"