Funzione finestra NTILE - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

Funzione finestra NTILE

La funzione finestra NTILE divide le righe ordinate nella partizione nel numero specificato di gruppi classificati di dimensioni uguali possibili e restituisce il gruppo in cui cade una determinata riga.

Sintassi

NTILE (expr) OVER ( [ PARTITION BY expression_list ] [ ORDER BY order_list ] )

Argomenti

expr

Il numero di classificazione si raggruppa e deve avere come risultato un valore intero positivo (maggiore di 0) per ogni partizione. L'argomento expr non deve essere reso null.

OVER

Una clausola che specifica il partizionamento e l'ordinamento della finestra. La clausola OVER non può contenere una specifica del frame della finestra.

PARTITION BY window_partition

Facoltativo. L'intervallo di registrazioni per ciascun gruppo nella clausola OVER.

ORDER BY window_ordering

Facoltativo. Un'espressione che ordina le righe all'interno di ogni partizione. Se viene omessa la clausola ORDER BY, il comportamento di classificazione è lo stesso.

Se ORDER BY non produce un ordinamento univoco, l'ordine delle righe non è deterministico. Per ulteriori informazioni, consultare Ordinamento univoco dei dati per le funzioni finestra.

Tipo restituito

BIGINT

Esempi

Il seguente esempio classifica in quattro gruppi di classificazione il prezzo pagato per i biglietti di Amleto il 26 agosto 2008. Il risultato è di 17 file, divise in modo quasi uniforme tra le classificazioni da 1 a 4:

select eventname, caldate, pricepaid, ntile(4) over(order by pricepaid desc) from sales, event, date where sales.eventid=event.eventid and event.dateid=date.dateid and eventname='Hamlet' and caldate='2008-08-26' order by 4; eventname | caldate | pricepaid | ntile -----------+------------+-----------+------- Hamlet | 2008-08-26 | 1883.00 | 1 Hamlet | 2008-08-26 | 1065.00 | 1 Hamlet | 2008-08-26 | 589.00 | 1 Hamlet | 2008-08-26 | 530.00 | 1 Hamlet | 2008-08-26 | 472.00 | 1 Hamlet | 2008-08-26 | 460.00 | 2 Hamlet | 2008-08-26 | 355.00 | 2 Hamlet | 2008-08-26 | 334.00 | 2 Hamlet | 2008-08-26 | 296.00 | 2 Hamlet | 2008-08-26 | 230.00 | 3 Hamlet | 2008-08-26 | 216.00 | 3 Hamlet | 2008-08-26 | 212.00 | 3 Hamlet | 2008-08-26 | 106.00 | 3 Hamlet | 2008-08-26 | 100.00 | 4 Hamlet | 2008-08-26 | 94.00 | 4 Hamlet | 2008-08-26 | 53.00 | 4 Hamlet | 2008-08-26 | 25.00 | 4 (17 rows)