欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

postgres窗口函数实例(取出每日中前N条数据) 博客分类: postgresql  

程序员文章站 2024-02-25 08:41: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"