SQL Practice Logo

SQLPractice Online

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