我有一个包含以下列的表: Date
, AcctId
, CustID
, BackupID
, Logins
, Amount
. 对于给定的日期 AcctID
可以有多个吗 CustIDs
,但我想指定一个单数 CustID
到一个 AcctID
基于 Logins
.
即。:
如果 Cust1
有更多 Logins
比 Cust2
在给定的日期和 AcctID
那么 CustID
应该有 Cust1
作为价值。
如果 Cust1
登录次数= Cust2
然后登录 CustID
应该有 BackupID
价值观。
然后我想添加 Amount
对于给定的 Date
, AcctID
.
有人能帮我学逻辑吗?我尝试了自我加入,但可能没有正确的想法。
1条答案
按热度按时间ffdz8vbo1#
可以使用聚合和窗口函数实现规则:
子查询按
acctid
,date
,和custid
. 它还对给定帐户/日期组合的custid进行排序。外部查询则表示:
如果只有一个最大值
custid
,然后使用它。否则使用
backupid
.注意如果有多个
backupid
在给定的acctid
/date
组合,则使用任意一个。