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;Preisquartile der Zahlungen
PostgreSQL 17.5
SELECT payment_id,
unit_price,
NTILE(4) OVER (
ORDER BY unit_price
) AS price_quartile
FROM Payments;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.