Offset Functions (LAG/LEAD): Functions
Module: Window Functions
**Basic LAG/LEAD Syntax:**
```sql
SELECT
column1,
column2,
LAG(column_name, offset, default) OVER (
[PARTITION BY partition_columns]
ORDER BY sort_columns
) AS previous_value,
LEAD(column_name, offset, default) OVER (
[PARTITION BY partition_columns]
ORDER BY sort_columns
) AS next_value
FROM table_name;
```
**Parameter Details:**
- **column_name**: Required - which column to access
- **offset**: Optional (default 1) - how many rows back/forward
- **default**: Optional (default NULL) - value when no row exists
**Simple Examples:**
```sql
-- 1. Basic LAG - previous row value
SELECT
date,
sales,
LAG(sales) OVER (ORDER BY date) as previous_day_sales
FROM daily_sales;
-- 2. LAG with offset - value from 7 days ago
SELECT
date,
sales,
LAG(sales, 7) OVER (ORDER BY date) as week_ago_sales
FROM daily_sales;
-- 3. LAG with default - avoid NULL in first row
SELECT
date,
sales,
LAG(sales, 1, 0) OVER (ORDER BY date) as previous_sales
FROM daily_sales;
```