Db2:基于多个where和order by条件提取顶行

vohkndzv  于 2023-03-12  发布在  DB2
关注(0)|答案(1)|浏览(200)

我有多个重复的账户信息,如账号、账户类型、分支、更新时间戳。我们在这个表中没有任何主键。现在我需要获取最近更新的所有这些账户信息。
我尝试的查询:

Select acc_num, 
  Acc_type,
  Branch,
  From acc1_table, acc2_table
  Where acc_num = acct_num
  Order by acc_num, acct_type,
  Timestamp Desc
  Fetch first row only:

如果我这样查询,它只提取表的第一行。但我需要每个帐户最近更新的记录。
样品:
| 账号|科目类型|分支|时间戳|
| - ------|- ------|- ------|- ------|
| 一一一|答:|哔哔。|2022年5月11日|
| 一一一|B.|Ccb的。|2022年2月1日|
| 一一一|C.|阿比|二〇二三年二月二十一日|
| 二二一|答:|哔哔。|二○二三年三月一日|
| 二二一|C.|Cbb。|2023年1月1日|
| 三三一|B.|阿比|二○二一年二月一日|
| 三三一|答:|英国广播公司|二○二二年三月一日|
| 四四一一|答:|哔哔。|2022年2月1日|
预期产出
| 账号|科目类型|分支|时间戳|
| - ------|- ------|- ------|- ------|
| 一一一|C.|阿比|二〇二三年二月二十一日|
| 二二一|答:|哔哔。|二○二三年三月一日|
| 三三一|答:|英国广播公司|二○二二年三月一日|
| 四四一一|答:|哔哔。|2022年2月1日|
请帮我写一个查询,从有重复帐号的表中获取最近更新的所有帐户详细信息

kmb7vmvb

kmb7vmvb1#

尝试以下方法-不清楚哪个列来自哪个表,因此可能需要添加一些相关名

SELECT a1.acc_num,  Acc_type,  Branch, timestamp
 FROM acc1_table a1
INNER JOIN acc2_table a2
   ON a1.acc_num = a2.acct_num
WHERE (a1.acc_num, timestamp) in (SELECT acc_num, max(timestamp) as timestamp
                                    FROM acc1_table
                                   GROUP BY acc_num)
ORDER BY acc_num, acct_type, Timestamp Desc

相关问题