Syntax
ROW_NUMBER() OVER ([ query_partition_clause ] order_by_clause)
Purpose
ROW_NUMBER() assigns a number to each row based on the row sequence specified in order_by_clause.
Examples
obclient> 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, 1 row affected
obclient> SELECT last_name, ROW_NUMBER() 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