我有交易表的数据如下。
| acct_upt_tm|帐户ID| acct_eff_dt| acct_cncl_dt| acct_cancer_cd|
| --|--|--|--|--|
| 2023年10月24日| 9873456 ||||
| 2023-10-14 2023-10-14| 9873456 |2020-06-11 2020-06-11| 2023-12-01 2023-12-01 2023-12-01| 01 |
| 2023年10月24日| 5567341 ||||
| 2023-10-14 2023-10-14| 5567341 |2021-05-14 2021-05-14 2021-05-14| 2022-12-12 2022-12-12 2022 -12-12| 01 |
需要编写一个查询,如果acct_eff_dt列的值为空,则输出应使用窗口函数row_number显示该字段的先前非空值,以便仅提取帐户的最新更新记录,如下所示。
预期产出
| acct_upt_tm|帐户ID| acct_eff_dt| acct_cncl_dt| acct_cancer_cd|
| --|--|--|--|--|
| 2023年10月24日| 9873456 |2020-06-11 2020-06-11|||
| 2023年10月24日| 5567341 |2021-05-14 2021-05-14 2021-05-14|||
以上是具有最新acct_updt_tm但未在原始表中填充acct_eff_dt的两个记录。输出应填充这些记录的值
第一个月
请帮助如何修改查询以获取需求。
1条答案
按热度按时间mbjcgjjk1#
你发布的代码看起来像Oracle。如果是这样,
LAG
分析函数可能是一个选择。样本数据:
字符串
查询:
型
[编辑],基于您的评论:如果您想获取每个
acct_id
的 * 最新 * 值,请使用max
聚合函数:型