Freigeben über


dense_rank-Rangfolgefensterfunktion

Gilt für: durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Gibt den Rang eines Werts im Vergleich zu allen Werten in der Partition zurück.

Syntax

dense_rank()

Argumente

Diese Funktion akzeptiert keine Argumente.

Gibt zurück

Ein INTEGER-Wert

Die OVER-Klausel der Fensterfunktion muss eine ORDER BY-Klausel enthalten. Im Gegensatz zur rank-Rangfolgefensterfunktion generiert dense_rank keine Lücken in der Rangfolge. Im Gegensatz zur row_number-Rangfolgefensterfunktion unterbricht dense_rank keine Bindungen. Wenn die Reihenfolge nicht eindeutig ist, teilen sich die Duplikate die gleiche relative spätere Position.

Beispiele

> SELECT a,
         b,
         dense_rank() OVER(PARTITION BY a ORDER BY b),
         rank() OVER(PARTITION BY a ORDER BY b),
         row_number() OVER(PARTITION BY a ORDER BY b)
    FROM VALUES ('A1', 2), ('A1', 1), ('A2', 3), ('A1', 1) tab(a, b);
 A1 1   1   1   1
 A1 1   1   1   2
 A1 2   2   3   3
 A2 3   1   1   1