The following SQL statement illustrates the difference between RANK(ANSI) and DENSE_RANK(ANSI), returning the RANK and DENSE_RANK for sales_person by sales_region and sales_amount.
SELECT sales_person, sales_region, sales_amount, RANK() OVER (PARTITION BY sales_region ORDER BY sales_amount DESC) as "Rank", DENSE_RANK() OVER (PARTITION BY sales_region ORDER BY sales_amount DESC) as "DenseRank" FROM sales_table;
sales_person | sales_region | sales_amount | Rank | DenseRank |
---|---|---|---|---|
Garabaldi | East | 100 | 1 | 1 |
Baker | East | 100 | 1 | 1 |
Fine | East | 89 | 3 | 2 |
Adams | East | 75 | 4 | 3 |
Edwards | West | 100 | 1 | 1 |
Connors | West | 99 | 2 | 2 |
Davis | West | 99 | 2 | 2 |
Russell | West | 50 | 4 | 3 |