Heim >Datenbank >MySQL-Tutorial >Wie berechnet man eine laufende Summe eindeutiger Werte in SQL Server-Partitionen?

Wie berechnet man eine laufende Summe eindeutiger Werte in SQL Server-Partitionen?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-05 00:06:37801Durchsuche

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

PARTITION-Funktion COUNT() OVER mit DISTINCT

Mit der PARTITION-Funktion mit COUNT() kann eine laufende Summe unterschiedlicher Werte berechnet werden eine Herausforderung in SQL Server. Während das Schlüsselwort DISTINCT in Aggregatfunktionen unterstützt wird, kann es nicht innerhalb von Partitionsfunktionen verwendet werden. Diese Einschränkung kann frustrierend sein, insbesondere wenn Sie versuchen, laufende Summen unterschiedlicher Werte zu berechnen.

Eine herkömmliche Methode zur Berechnung eindeutiger Zählungen ist die Verwendung einer korrelierten Unterabfrage. Dieser Ansatz kann jedoch ineffizient und schwierig zu warten sein.

Glücklicherweise gibt es eine einfache Lösung mit dense_rank():

dense_rank() over (partition by [Mth] order by [UserAccountKey]) 
+ dense_rank() over (partition by [Mth] order by [UserAccountKey] desc) 
- 1

Dieser Ausdruck berechnet die laufende Summe der einzelnen UserAccountKeys innerhalb jedes einzelnen Monat. Dabei werden die Werte zunächst in aufsteigender Reihenfolge, dann in absteigender Reihenfolge sortiert und schließlich eins von der Summe der beiden Ränge subtrahiert. Dieser Ansatz eliminiert effektiv doppelte Werte und liefert gleichzeitig eine laufende Zählung der unterschiedlichen Werte.

Das obige ist der detaillierte Inhalt vonWie berechnet man eine laufende Summe eindeutiger Werte in SQL Server-Partitionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn