SQL Academy
Premium
Funktionsreferenz

NTILE

Teilt die Zeilen einer Fensterpartition in die angegebene Anzahl ungefähr gleich großer Gruppen und gibt die Gruppennummer der Zeile zurück.

PostgreSQL 17.5
NTILE(number_of_groups) OVER ([PARTITION BY ...] [ORDER BY ...])

Parameter

number_of_groupsinteger
Anzahl der Gruppen, positive ganze Zahl
PARTITION BYoptional
Spalten, nach denen die Zeilen in Partitionen aufgeteilt werden; die Gruppen werden in jeder Partition separat gebildet
ORDER BYoptional
Reihenfolge, in der die Zeilen auf die Gruppen verteilt werden

Rückgabewert

Ganze Zahl (integer) von 1 bis number_of_groups

Beispiele

Drei Gruppen nach Geburtsdatum

PostgreSQL 17.5
SELECT member_name,
	birthday,
	NTILE(3) OVER (
		ORDER BY birthday
	) AS age_group
FROM FamilyMembers;
member_namebirthdayage_group
Headley Quincey1960-05-131
Ernest Forrest1961-09-111
Flavia Quincey1963-02-161
Constance Forrest1968-09-062
Andie Quincey1983-06-052
Lela Quincey1985-06-072
Annie Quincey1988-04-103
Wednesday Addams2005-01-133

Preisquartile der Zahlungen

PostgreSQL 17.5
SELECT payment_id,
	unit_price,
	NTILE(4) OVER (
		ORDER BY unit_price
	) AS price_quartile
FROM Payments;
payment_idunit_priceprice_quartile
1671
1971
1881
1581
1781
22101
26161
3202
27592
61002

Details

Wenn sich die Zeilen nicht gleichmäßig aufteilen lassen, bekommen die ersten Gruppen eine Zeile mehr: 8 Zeilen werden auf 3 Gruppen als 3, 3 und 2 verteilt. Gibt es mehr Gruppen als Zeilen, kommt jede Zeile in eine eigene Gruppe.

Siehe auch