我正在计算运行余额,并希望将所有行标记为 0 值,以具有与帐户 ID 相关的“匹配”标记,否则“不匹配”标记。
这是我尝试过但没有得到正确结果的方法:
SEL a.*,
CASE WHEN RUNNING_BALANCE OVER (PARTITION BY ACCT_SROGT_ID ROWS UNBOUNDED PRECEDING ) = 0 THEN 'M' ELSE 'NM' END R
FROM NON_MATCHING_RUNNING_BALANCE a
最佳答案
我们可以使用子查询找到最后一个为0的acct_rank,然后使用case来测试每一行。
Select
a.*,
Case when a.acct_rank > z.last_zero
Then 'unmatched' else 'matched'
End as is_matched
From accounts a
Join ( select
account_id as id,
MAX(acct_rank) last_zero
From accounts
Where running_balance = 0
Group by account_id) z
On a.account_id = z.id;
关于SQL - 将行标记为每组的 0 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71936086/