ROW_NUMBER, RANK, DENSE_RANK: Functions
Module: Window Functions
**Basic Syntax Pattern:**
```sql
SELECT
column1,
column2,
RANKING_FUNCTION() OVER (
[PARTITION BY column(s)] -- Optional: separate rankings per group
ORDER BY column(s) [ASC|DESC] -- Required: how to rank
) AS rank_column
FROM table_name;
```
**Simple Examples:**
```sql
-- 1. Basic ROW_NUMBER for unique positions
SELECT
employee_name,
salary,
ROW_NUMBER() OVER(ORDER BY salary DESC) as position
FROM employees;
-- 2. Basic RANK for competition-style ranking
SELECT
student_name,
test_score,
RANK() OVER(ORDER BY test_score DESC) as class_rank
FROM test_results;
-- 3. Basic DENSE_RANK for continuous tiers
SELECT
product_name,
rating,
DENSE_RANK() OVER(ORDER BY rating DESC) as rating_tier
FROM products;
```
**With PARTITION BY (Group Rankings):**
```sql
-- Rankings within each department
SELECT
department,
employee_name,
salary,
-- Separate ranking competition per department