NTILEfonction de fenêtre - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

NTILEfonction de fenêtre

La fonction NTILE window divise les lignes ordonnées de la partition en un nombre spécifié de groupes classés de taille aussi égale que possible et renvoie le groupe auquel appartient une ligne donnée.

Syntaxe

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

Arguments

expr

Nombre de groupes de rang et doit se traduire par une valeur de nombre entier positif (supérieur à 0) pour chaque partition. L’argument expr ne doit pas autoriser la valeur NULL.

OVER

Clause qui spécifie le partitionnement et l’ordonnancement de fenêtrage. La OVER clause ne peut pas contenir de spécification de cadre de fenêtre.

PARTITIONPAR window_partition

Facultatif. La plage d'enregistrements pour chaque groupe de la OVER clause.

ORDERPAR window_ordering

Facultatif. Expression qui trie les lignes dans chaque partition. Si la clause ORDER BY est omise, le comportement de classement est le même.

Si ORDER BY ne produit pas d'ordre unique, l'ordre des lignes n'est pas déterministe. Pour de plus amples informations, veuillez consulter Ordonnancement unique des données pour les fonctions de fenêtrage.

Type de retour

BIGINT

Exemples

L’exemple suivant répartit en quatre groupes de rangs le prix payé pour les billets de Hamlet le 26 août 2008. L’ensemble de résultats est de 17 lignes, classées presque uniformément de 1 à 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)