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

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

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值