首頁 > 資料庫 > mysql教程 > 如何計算 SQL Server 分割區中不同值的運行總計?

如何計算 SQL Server 分割區中不同值的運行總計?

Patricia Arquette
發布: 2025-01-05 00:06:37
原創
800 人瀏覽過

How to Calculate a Running Total of Distinct Values in SQL Server Partitions?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板