Skip to main content
Version: V1.0.0

NTILE

Syntax

NTILE(expr) OVER ([ query_partition_clause ] order_by_clause)

Description

Divides the sorted rows in the partition into groups of approximately equal size as specified by the specified number of groups and returns the group number to each row. If expr is NULL, it returns NULL.

Examples

CREATE TABLE employees(LAST_NAME CHAR(10), SALARY DECIMAL, JOB_ID CHAR(32));
INSERT INTO employees VALUES('JIM', 2000, 'CLEANER');
INSERT INTO employees VALUES('MIKE', 12000, 'ENGINEERING');
INSERT INTO employees VALUES('LILY', 13000, 'ENGINEERING');
INSERT INTO employees VALUES('TOM', 11000, 'ENGINEERING');
COMMIT;
Query OK, 0 rows affected (0.001 sec)

SELECT LAST_NAME, NTILE(10) OVER(PARTITION BY JOB_ID ORDER BY SALARY) NTL FROM employees;
+-----------+------+
| LAST_NAME | NTL |
+-----------+------+
| JIM | 1 |
| TOM | 1 |
| MIKE | 2 |
| LILY | 3 |
+-----------+------+
4 rows in set (0.003 sec)