postgres窗口函数实例(取出每日中前N条数据)

时间:2016-03-03 02:06:19   收藏:0   阅读:139

假设现有一批数据,字段中包含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"

?

?

原文:http://jjxliu306.iteye.com/blog/2280002

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!