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)