SELECT
*, (SELECT count(1) from color i WHERE i.NAME <= c.NAME)
FROM color c
ORDER BY name
Output:
id NAME
----------- ------------------------- -----------
4 blue 1
1 orange 2
3 red 3
2 yellow 4
I didn't understand how this query generates row_nums without using row_number function? How the query flow would be when subquery will be executed before order by or after?