sql - 如果条目被多次完成,则需要在每种情况下获取第二条记录
问题描述
如果在 sas 企业指南中多次输入 pan 则需要获取第二条记录
输入数据:
PAN1 PREF1
PAN2 PREF1
PAN2 PREF2
PAN2 PREF3
PAN3 PREF3
PAN3 PREF4
输出:
PAN1 PREF1
PAN2 PREF2
PAN3 PREF4
所以基本上如果pan的条目是一次,那么需要填充相同的记录。如果pan的条目不止一次,则需要填充pan的第二条记录。
解决方案
你可以结合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
推荐阅读
- javascript - 模态不再关闭
- c++ - C++中的高斯模糊
- highcharts - Highcharts plotOptions.series.compare='percent' 呈现空白
- vue.js - 如何在 Vue.js 中设置多行标题 v-toolbar?
- java - org.testng.TestNGException:无法实例化类原因:java.lang.reflect.InvocationTargetException
- android - 应用程序中的对话框在 Duebug 中运行良好,但在使用 APK 安装时强制关闭
- swift - SwiftUI 防止连字符的换行而不影响缩放
- javascript - 出现错误:输入文件似乎已损坏,并且在通过 LWC js 中的 adobe api 发送文件时无法处理
- flutter - 未处理的异常:NoSuchMethodError:方法“[]”在颤振时被调用为 null
- asp.net-core - Blazor Server AuthenticationStateProvider 中的用户名属性为空?