Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Die Fensterfunktion NTILE teilt angeordnete Zeilen in der Partition so gleichmäßig wie möglich in die angegebene Zahl von Gruppen mit Rangfestlegung auf und gibt die Gruppe zurück, zu der eine bestimmte Zeile gehört.
Syntax
NTILE (expr) OVER ( [ PARTITION BY expression_list ] [ ORDER BY order_list ] )
Argumente
- expr
-
Die Anzahl der Gruppen mit Rangfestlegung; muss für jede Partition einen positiven Ganzzahlwert (größer als 0) als Ergebnis haben. Das Argument expr darf nicht nullwertfähig sein.
- OVER
-
Eine Klausel, die die Fensterpartitionierung und -anordnung angibt. Die OVER-Klausel darf keine Fensterrahmenspezifikation enthalten.
- PARTITION BY window_partition
-
Optional. Der Datensatzbereich für die einzelnen Gruppen in der OVER-Klausel.
- ORDER BY window_ordering
-
Optional. Ein Ausdruck, der die Zeilen innerhalb der einzelnen Partitionen sortiert. Wenn die ORDER BY-Klausel ausgelassen wird, bleibt das Rangfestlegungsverhalten gleich.
Wenn ORDER BY nicht zu einer spezifischen Reihenfolge führt, ist die Reihenfolge der Zeilen nicht deterministisch. Weitere Informationen finden Sie unter Spezifisches Anordnen von Daten für Fensterfunktionen.
Rückgabetyp
BIGINT
Beispiele
Im folgenden Beispiel wird der Preis, der am 26. August 2008 für Hamlet-Tickets gezahlt wurde, in vier Rangfestlegungsgruppen angezeigt. Das Ergebnis sind 17 Zeilen, die beinahe gleichmäßig auf die Rangfestlegungsgruppen 1 bis 4 aufgeteilt sind:
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)