Heim > Datenbank > MySQL-Tutorial > Kann COUNT() OVER (PARTITION BY ...) DISTINCT-Zählungen in SQL Server verarbeiten?

Kann COUNT() OVER (PARTITION BY ...) DISTINCT-Zählungen in SQL Server verarbeiten?

DDD
Freigeben: 2025-01-03 20:04:42
Original
828 Leute haben es durchsucht

Can COUNT() OVER (PARTITION BY ...) Handle DISTINCT Counts in SQL Server?

Eindeutige Zählung mit Partitionsfunktionen: COUNT() OVER vs. DISTINCT

Diese Frage untersucht die Verwendung der OVER-Klausel von SQL bei der Berechnung eindeutiger Zählungen . Der Benutzer versucht, die Funktion COUNT() OVER (PARTITION BY ...) mit dem Schlüsselwort DISTINCT zu verwenden, um eine laufende Summe eindeutiger Benutzer innerhalb eines bestimmten Monats zu erhalten. Bei diesem Ansatz tritt jedoch ein Fehler auf.

Der Fehler tritt auf, weil die OVER-Funktionen von SQL Server derzeit das DISTINCT-Schlüsselwort in der Partitionsklausel nicht unterstützen. Daher ist der Benutzer nicht in der Lage, während der Partitionierung eine eindeutige Zählung anzuwenden.

Eine Lösung für dieses Problem ist die Verwendung der Funktion „dense_rank()“. Der folgende Ausdruck erzielt die gewünschte Ausgabe:

dense_rank() over (partition by [Mth] order by [UserAccountKey])
+ dense_rank() over (partition by [Mth] order by [UserAccountKey] desc)
- 1
Nach dem Login kopieren

Durch zweimaliges Anwenden von „dense_rank()“ und Subtrahieren der Ergebnisse zählt der Ausdruck effektiv die Anzahl der unterschiedlichen Werte in der angegebenen Spalte innerhalb jedes Monats. Diese Methode bietet die gleiche Funktionalität wie die ursprünglich vorgesehene COUNT() OVER (PARTITION BY ...) mit DISTINCT.

Das obige ist der detaillierte Inhalt vonKann COUNT() OVER (PARTITION BY ...) DISTINCT-Zählungen in SQL Server verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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