Heim > Datenbank > MySQL-Tutorial > Wie berechnet man eindeutige Zählungen innerhalb von Partitionen in SQL Server, ohne DISTINCT zu verwenden?

Wie berechnet man eindeutige Zählungen innerhalb von Partitionen in SQL Server, ohne DISTINCT zu verwenden?

Patricia Arquette
Freigeben: 2025-01-03 19:06:40
Original
833 Leute haben es durchsucht

How to Calculate Distinct Counts Within Partitions in SQL Server Without Using DISTINCT?

Berechnen eindeutiger Zählungen mithilfe von Partitionsfunktionen

In SQL Server können Sie mit der Funktion COUNT() OVER Daten innerhalb bestimmter Partitionen aggregieren. Die Verwendung des Schlüsselworts DISTINCT innerhalb der Partitionsfunktionen wird jedoch nicht unterstützt. Daher fragen sich Entwickler, wie sie eindeutige Zählungen innerhalb von Partitionen erhalten können.

Verwendung von DENSE_RANK

Eine einfache Lösung zur Berechnung eindeutiger Zählungen ist die Verwendung der Funktion DENSE_RANK. Die folgende Abfrage zeigt, wie:

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 Anzahl unterschiedlicher UserAccountKeys innerhalb jedes Monats. Dies geschieht, indem zunächst die UserAccountKeys innerhalb jedes Monats in aufsteigender und absteigender Reihenfolge geordnet werden. Diese Rankings werden dann addiert und 1 subtrahiert, um die gewünschte Anzahl zu erhalten.

Beispiel

Berücksichtigen Sie die folgenden Daten:

| Mth | UserAccountKey |
|---|---|
| 1 | A |
| 1 | B |
| 1 | C |
| 2 | D |
| 2 | E |
| 2 | F |
Nach dem Login kopieren

Verwendet Wenn Sie den obigen Ausdruck verwenden, gibt die Abfrage Folgendes zurück Ergebnisse:

| Mth | NumUsers |
|---|---|
| 1 | 3 |
| 2 | 3 |
Nach dem Login kopieren

Fazit

Die Funktion DENSE_RANK bietet eine prägnante und effiziente Methode zum Berechnen unterschiedlicher Zählungen innerhalb von Partitionen in SQL Server, auch wenn dies beim Schlüsselwort DISTINCT nicht der Fall ist direkt in der PARTITION BY-Klausel unterstützt.

Das obige ist der detaillierte Inhalt vonWie berechnet man eindeutige Zählungen innerhalb von Partitionen in SQL Server, ohne DISTINCT zu verwenden?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage