PERCENTILE_ funzione window DISC - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

PERCENTILE_ funzione window DISC

PERCENTILE_ DISC è una funzione di distribuzione inversa che presuppone un modello di distribuzione discreto. Prende un valore percentile e una specifica di ordinamento e restituisce un elemento dall'insieme specificato.

Per un dato valore percentile P, PERCENTILE _ DISC ordina i valori dell'espressione nella clausola ORDER BY e restituisce il valore con il valore di distribuzione cumulativa più piccolo (rispetto alla stessa specifica di ordinamento) maggiore o uguale a P.

È possibile specificare solo la clausola nella PARTITION clausola. OVER

Sintassi

PERCENTILE_DISC ( percentile ) WITHIN GROUP (ORDER BY expr) OVER ( [ PARTITION BY expr_list ] )

Argomenti

percentile

Costante numerica compresa tra 0 e 1. I valori null vengono ignorati nel calcolo.

WITHINGROUP(DI ORDER expr)

Specifica i valori numerici o di data/ora per ordinare e calcolare il percentile.

OVER

Specifica il partizionamento della finestra. La OVER clausola non può contenere un ordine delle finestre o una specifica del telaio della finestra.

PARTITIONDI expr

Argomento facoltativo che imposta l'intervallo di record per ogni gruppo della OVER clausola.

Valori restituiti

Lo stesso tipo di dati dell'espressione ORDER BY nella WITHIN GROUP clausola.

Esempi

Negli esempi seguenti viene utilizzata la WINSALES tabella. Per una descrizione della WINSALES tabella, vedereTabella di esempio per gli esempi della funzione finestra.

SELECT sellerid, qty, PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY qty) OVER() AS MEDIAN FROM winsales; +----------+-----+--------+ | sellerid | qty | median | +----------+-----+--------+ | 3 | 10 | 20 | | 1 | 10 | 20 | | 1 | 10 | 20 | | 4 | 10 | 20 | | 3 | 15 | 20 | | 2 | 20 | 20 | | 2 | 20 | 20 | | 3 | 20 | 20 | | 1 | 30 | 20 | | 3 | 30 | 20 | | 4 | 40 | 20 | +----------+-----+--------+ SELECT sellerid, qty, PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY qty) OVER(PARTITION BY sellerid) AS MEDIAN FROM winsales; +----------+-----+--------+ | sellerid | qty | median | +----------+-----+--------+ | 4 | 10 | 10 | | 4 | 40 | 10 | | 3 | 10 | 15 | | 3 | 15 | 15 | | 3 | 20 | 15 | | 3 | 30 | 15 | | 2 | 20 | 20 | | 2 | 20 | 20 | | 1 | 10 | 10 | | 1 | 10 | 10 | | 1 | 30 | 10 | +----------+-----+--------+

Per trovare PERCENTILE _ DISC (0,25) e PERCENTILE _ DISC (0,75) per la quantità ripartita in base all'ID del venditore, utilizza gli esempi seguenti.

SELECT sellerid, qty, PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY qty) OVER(PARTITION BY sellerid) AS quartile1 FROM winsales; +----------+-----+-----------+ | sellerid | qty | quartile1 | +----------+-----+-----------+ | 4 | 10 | 10 | | 4 | 40 | 10 | | 2 | 20 | 20 | | 2 | 20 | 20 | | 3 | 10 | 10 | | 3 | 15 | 10 | | 3 | 20 | 10 | | 3 | 30 | 10 | | 1 | 10 | 10 | | 1 | 10 | 10 | | 1 | 30 | 10 | +----------+-----+-----------+ SELECT sellerid, qty, PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY qty) OVER(PARTITION BY sellerid) AS quartile3 FROM winsales; +----------+-----+-----------+ | sellerid | qty | quartile3 | +----------+-----+-----------+ | 3 | 10 | 20 | | 3 | 15 | 20 | | 3 | 20 | 20 | | 3 | 30 | 20 | | 4 | 10 | 40 | | 4 | 40 | 40 | | 2 | 20 | 20 | | 2 | 20 | 20 | | 1 | 10 | 30 | | 1 | 10 | 30 | | 1 | 30 | 30 | +----------+-----+-----------+