gpt4 book ai didi

DB2 查询 - 选择特定的重复记录

转载 作者:行者123 更新时间:2023-12-04 02:34:07 25 4
gpt4 key购买 nike

我对在 IBM AS400 上处理 DB2 还很陌生。

我运行了以下查询:

SELECT *                                                         
FROM mytable
WHERE ID = 1963003909

这是查询的结果:
     ID    WK END DT  VRSN    AMT  
----------- ---------- ------ ------------
1963003909 2012-03-24 1 0.00
1963003909 2012-03-31 1 0.00
1963003909 2012-04-07 1 0.00
1963003909 2012-04-14 1 0.00
1963003909 2012-04-21 1 0.00
1963003909 2012-04-28 1 0.00
1963003909 2012-05-05 1 0.00
1963003909 2012-05-12 1 0.00
1963003909 2012-05-19 1 0.00
1963003909 2012-05-26 1 0.00
1963003909 2012-06-02 1 0.00
1963003909 2012-06-09 1 0.00
1963003909 2012-06-16 1 0.00
1963003909 2012-06-23 1 0.00
1963003909 2012-06-30 1 0.00
1963003909 2012-07-07 1 0.00
1963003909 2012-07-14 1 0.00
1963003909 2012-07-21 1 0.00
1963003909 2012-07-28 1 0.00
1963003909 2012-07-28 2 320.00

我希望能够修改查询以仅选择 VRSN 列中具有最大值的记录,以便能够将信息放入报告中。

我曾尝试从该站点阅读其他示例,但找不到任何未显示如何从表中删除重复记录的内容。

谢谢

最佳答案

我现在没有 DB2,但您应该可以通过 vrsn 订购使用 OLAP function (ANSI SQL 称它们为窗口函数)如 ROW_NUMBER() .然后根据您的订购选择。从这样的事情开始:

with data(<column_list>, Ranking) as (
select *, ROW_NUMBER() OVER(PARTITION BY id ORDER BY vrsn desc) as Ranking
from mytable
)
select * from data where Ranking = 1

基本上,DB2 会将数字 1 分配给具有最高 vrsn 的行。每 id ,等等,不同的 OLAP 函数将在 vrsn 中打破联系。以不同的方式。

关于DB2 查询 - 选择特定的重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13017338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com