NTILE
Делит строки раздела окна на заданное количество групп примерно равного размера и возвращает номер группы строки.
PostgreSQL 17.9
NTILE(number_of_groups)- number_of_groups
- Количество групп, положительное целое числоinteger
Возвращаемое значение
Целое число (integer) от 1 до number_of_groups
Примеры
Три группы по дате рождения
PostgreSQL 17.9
SELECT member_name,
birthday,
NTILE(3) OVER (
ORDER BY birthday
) AS age_group
FROM FamilyMembers;Квартили цен в платежах
PostgreSQL 17.9
SELECT payment_id,
unit_price,
NTILE(4) OVER (
ORDER BY unit_price
) AS price_quartile
FROM Payments;Подробности
Если строки не делятся поровну, первые группы получают на одну строку больше: 8 строк на 3 группы делятся как 3, 3 и 2. Если групп больше, чем строк, каждая строка попадает в свою группу.