Oracl has a nice feature to add a rank to a row. Let us assume you have a table with 4 values: some rows have an A, others have a B, others have a C and some are D. Oracle is able to provide a rank to this series by providing a 1 to A, 2 to B, 3 to C and 4 to D.
This could be used (for example) is we have prices that we would like to order: the lowest price a 1, second a 2 etc.
The code is as follows:
CREATE TABLE rank_demo ( col VARCHAR(10) NOT NULL);
INSERT ALL
INTO rank_demo(col) VALUES('A')
INTO rank_demo(col) VALUES('A')
INTO rank_demo(col) VALUES('B')
INTO rank_demo(col) VALUES('C')
INTO rank_demo(col) VALUES('C')
INTO rank_demo(col) VALUES('C')
INTO rank_demo(col) VALUES('D')
SELECT 1 FROM dual;
SELECT col, dense_RANK() OVER (ORDER BY col) my_rank
FROM rank_demo;
Which provides:
