首页 > 解决方案 > 如果条目被多次完成,则需要在每种情况下获取第二条记录

问题描述

如果在 sas 企业指南中多次输入 pan 则需要获取第二条记录

输入数据:

PAN1 PREF1
PAN2 PREF1
PAN2 PREF2
PAN2 PREF3
PAN3 PREF3
PAN3 PREF4

输出:

PAN1 PREF1
PAN2 PREF2
PAN3 PREF4

所以基本上如果pan的条目是一次,那么需要填充相同的记录。如果pan的条目不止一次,则需要填充pan的第二条记录。

标签: sqlpostgresqlgreatest-n-per-groupwindow-functions

解决方案


你可以结合row_number()一个窗口count()

select pan, ref
from (
    select 
        t.*, 
        row_number() over(partition by pan order by ref) rn,
        count(*) over(partition by pan) cnt
    from mytable t
) t
where rn = 2 or cnt = 1

推荐阅读