sql / expert
Snippet
Ranking-Verteilungen mit DENSE_RANK
Fensterfunktionen für das Ranking ermöglichen eine anspruchsvolle Sortierlogik. Während RANK() Nummern überspringt, wenn Gleichstände auftreten, stellt DENSE_RANK() eine kontinuierliche Sequenz sicher. Diese Unterscheidung ist in der statistischen Analyse und bei Wettbewerbssystemen entscheidend.
snippet.sql
1
2
3
4
SELECT student_name, score,RANK() OVER (ORDER BY score DESC) as rank_gap,DENSE_RANK() OVER (ORDER BY score DESC) as rank_denseFROM exam_results;
Erklärung
1
RANK() OVER (ORDER BY score DESC)
Weist einen Rang zu; identische Punktzahlen erhalten denselben Rang, und der nächste Rang wird übersprungen.
2
DENSE_RANK() OVER (ORDER BY score DESC)
Weist einen Rang zu; identische Punktzahlen erhalten denselben Rang, aber der nächste Rang ist die unmittelbar folgende Ganzzahl.