SQL取group后各组倒数第2行

简化后的Demo:

      表中有 id 和 operate_time 两列,每个id对应多个operate_time,需要查询 每个id的倒数第2次的operate_time.这就相当于要分组然后查询各组中第2条记录(按operate_time倒序后)。

     网上查了一下解决方案后,有一个关于查询学生成绩的,当需求不一样,用 先 倒序后 top2,然后再正序取第1条,大概是这样子,但套不进来,发现了一个更简便的方法:用 rank() over()函数,eg:

 

with abc as
(
select rank() over(partition by id order by operate_time desc) ord,id,operate_time from use_log
)
select * from abc
WHERE ord=2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值