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
Freigeben: 2025-01-05 00:06:37
Original
841 Leute haben es durchsucht

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
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage