次のSQL文は、RANK(ANSI)とDENSE_RANK(ANSI)との違いを示しており、sales_regionおよびsales_amount別にsales_personのRANKおよびDENSE_RANKを返します。
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 |