SQL Practice Logo

SQLPractice Online

Window Functions Fundamentals: Functions

Module: Window Functions

**Basic Window Function Syntax:**

```sql

SELECT

column1,

column2,

FUNCTION_NAME(column) OVER (

[PARTITION BY column(s)]

[ORDER BY column(s)]

[ROWS/RANGE frame_specification]

) AS alias

FROM table_name;

```

**Progressive Examples:**

```sql

-- 1. Simplest form - entire result set

SELECT

employee_name,

salary,

COUNT(*) OVER() as total_employees,

AVG(salary) OVER() as company_avg_salary

FROM employees;

-- 2. PARTITION BY - separate calculations per group

SELECT

employee_name,

department,

salary,

COUNT(*) OVER(PARTITION BY department) as dept_size,

AVG(salary) OVER(PARTITION BY department) as dept_avg_salary,

salary - AVG(salary) OVER(PARTITION BY department) as salary_vs_dept_avg

FROM employees;

-- 3. ORDER BY - sequential/cumulative calculations

SELECT

employee_name,

hire_date,

salary,

ROW_NUMBER() OVER(ORDER BY hire_date) as hire_sequence,

SUM(salary) OVER(ORDER BY hire_date) as cumulative_payroll,

AVG(salary) OVER(ORDER BY hire_date) as running_avg_salary

FROM employees;

-- 4. Combined PARTITION BY + ORDER BY