percentile agregační funkce

Platí pro:zaškrtnuté ano Databricks SQL zaškrtnuté ano Databricks Runtime

Vrátí přesnou percentilovou expr hodnotu v zadané percentage skupině.

Syntaxe

percentile ( [ALL | DISTINCT] expr, percentage [, frequency] ) [FILTER ( WHERE cond ) ]

Tuto funkci lze také vyvolat jako funkci okna pomocí klauzule OVER.

Argumenty

  • expr: Výraz, který se vyhodnotí jako číselný.
  • percentage: Číselný výraz mezi 0 a 1 nebo ARRAY číselných výrazů, každý v rozmezí 0 až 1.
  • frequency: Volitelný celočíselný literál větší než 0.
  • cond: Volitelný logický výraz filtrující řádky použité pro agregaci.

Návraty

DOUBLE pokud je percentage číselný, nebo je ARRAY<DOUBLE> argumentem, pokud je percentageARRAY.

Frekvence popisuje, kolikrát se expr musí počítat. Frekvence 10 pro určitou hodnotu je ekvivalentní této hodnotě, která se v okně zobrazuje 10krát s frekvencí 1. Výchozí frekvence je 1.

Pokud je zadán DISTINCT, funkce pracuje pouze s jedinečnou sadou expr hodnot.

Azure Databricks DATATYPE_MISMATCH pokud percentage není mezi 0 a 1 nebo není konstanta.

Azure Databricks vyvolá NEGATIVE_VALUES_IN_FREQUENCY_EXPRESSION pokud je frequency negativní.

Běžné chybové podmínky

Příklady

> SELECT percentile(col, 0.3) FROM VALUES (0), (10), (10) AS tab(col);
 6.0

> SELECT percentile(DISTINCT col, 0.3) FROM VALUES (0), (10), (10) AS tab(col);
 3.0

> SELECT percentile(col, 0.3, freq) FROM VALUES (0, 1), (10, 2) AS tab(col, freq);
 6.0

> SELECT percentile(col, array(0.25, 0.75)) FROM VALUES (0), (10) AS tab(col);
 [2.5,7.5]

> SELECT percentile(col, 1.5) FROM VALUES (1), (2) AS tab(col);
  Error: DATATYPE_MISMATCH.VALUE_OUT_OF_RANGE