PARTITION 函數COUNT() OVER 和DISTINCT
使用PARTITION 函數和COUNT() 來計算不同值的運行總計是指不同值的運行總計是中的挑戰。雖然聚合函數支援 DISTINCT 關鍵字,但它不能在分區函數中使用。這種限制可能會令人沮喪,尤其是在嘗試計算不同值的運行總計時。
計算不同計數的傳統方法是使用相關子查詢。然而,這種方法可能效率低且難以維護。
幸運的是,有一個使用dense_rank()的簡單解決方案:
dense_rank() over (partition by [Mth] order by [UserAccountKey]) + dense_rank() over (partition by [Mth] order by [UserAccountKey] desc) - 1
此表達式計算每個中不同 UserAccountKey 的運行總和月。它的工作原理是首先按升序對值進行排名,然後按降序對它們進行排名,最後從兩個排名的總和中減去 1。這種方法有效地消除了重複值,同時提供不同值的運行計數。
以上是如何計算 SQL Server 分割區中不同值的運行總計?的詳細內容。更多資訊請關注PHP中文網其他相關文章!