Delen via


percent_rank classificatievensterfunctie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Berekent de percentageclassificatie van een waarde binnen de partitie.

Syntaxis

percent_rank()

Argumenten

De functie heeft geen argumenten

Retouren

A DOUBLE.

De functie wordt gedefinieerd als de positie binnen het venster min één gedeeld door het aantal rijen in het venster min 1. Als er slechts één rij in het venster staat, is de rang 0.

Als expressie kan de semantische expressie worden uitgedrukt als:

nvl((rank() OVER(PARTITION BY p ORDER BY o) - 1) / nullif(count(1) OVER(PARTITION BY p) -1), 0), 0)

Deze functie is vergelijkbaar, maar niet hetzelfde als cume_dist de analysevensterfunctie.

U moet ORDER BY clausule opnemen in de vensterspecificatie.

Voorbeelden

> SELECT a, b, percent_rank(b) OVER (PARTITION BY a ORDER BY b)
    FROM VALUES ('A1', 2), ('A1', 1), ('A1', 3), ('A1', 6), ('A1', 7), ('A1', 7), ('A2', 3), ('A1', 1) tab(a, b)
 A1 1  0.0
 A1 1  0.0
 A1 2  0.3333333333333333
 A1 3  0.5
 A1 6  0.6666666666666666
 A1 7  0.8333333333333334
 A1 7  0.8333333333333334
 A2 3  0.0