sql / intermediate
Snippet
Rangfolge gruppierter Daten mit DENSE_RANK ermitteln
Die Window-Funktion DENSE_RANK berechnet fortlaufende Rangwerte für Zeilen innerhalb einer Partition, ohne Lücken zu hinterlassen, wenn doppelte Werte auftreten.
snippet.sql
sql
1
2
3
4
5
6
7
8
SELECT department_id,employee_id,salary,DENSE_RANK() OVER (PARTITION BY department_idORDER BY salary DESC) AS salary_rankFROM employees;
Erklärung
1
SELECT department_id,
Wählt die Spalte für die Abteilungsgruppierung aus.
2
employee_id,
Enthält die Mitarbeiter-ID.
3
salary,
Enthält die Gehaltsangabe.
4
DENSE_RANK() OVER (
Wendet eine Window-Rangfunktion an, die zusammenhängende Ränge ohne Lücken erzeugt.
5
PARTITION BY department_id
Unterteilt die Ergebnismenge in separate Partitionen pro Abteilung.
6
ORDER BY salary DESC
Sortiert die Zeilen innerhalb jeder Abteilungspartition nach Gehalt absteigend.
7
) AS salary_rank
Weist den berechneten Rang der Alias-Spalte 'salary_rank' zu.
8
FROM employees;
Führt die Abfrage auf dem Datenbestand der Tabelle 'employees' aus.