sql / intermediate
Snippet
Rangfolge von Daten mit Fensterfunktionen und DENSE_RANK
Fensterfunktionen berechnen Werte über eine Gruppe von Zeilen im Verhältnis zur aktuellen Zeile, ohne die Ergebnis-Zeilen zu gruppieren. Im Gegensatz zu RANK() vergibt DENSE_RANK() fortlaufende Ganzzahl-Ränge ohne Lücken bei gleichen Werten.
snippet.sql
sql
1
2
3
SELECT employee_id, department_id, salary,DENSE_RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS salary_rankFROM employees;
Erklärung
1
SELECT employee_id, department_id, salary,
Wählt Standard-Mitarbeiterdaten zusammen mit der berechneten Fensterfunktions-Spalte aus.
2
DENSE_RANK() OVER (
Ruft DENSE_RANK auf, um fortlaufende Rangnummern ohne Lücken bei gleichen Werten zu vergeben.
3
PARTITION BY department_id
Unterteilt den Datensatz in unabhängige Partitionen pro Abteilung.
4
ORDER BY salary DESC) AS salary_rank
Sortiert Zeilen innerhalb jeder Partition absteigend nach Gehalt und vergibt ein Alias.
5
FROM employees;
Gibt die Quelltabelle der Abfrage an.