emp_id INT,
emp_name VARCHAR(50),
salary INT,
salary_month VARCHAR(7) -- Stored as 'YYYY-MM'
);
INSERT INTO employees (emp_id, emp_name, salary, salary_month)
VALUES
(1, 'Alice', 5000, '2024-01'),
(1, 'Alice', 5200, '2024-02'),
(1, 'Alice', 5200, '2024-03'),
(2, 'Bob', 6000, '2024-01'),
(2, 'Bob', 6100, '2024-02'),
(2, 'Bob', 6200, '2024-03');
WITH salary_history AS (
SELECT
emp_id,
emp_name,
salary_month,
salary,
LAG(salary) OVER (PARTITION BY emp_id ORDER BY salary_month) AS prev_salary
FROM employees
)
SELECT emp_id, emp_name, salary_month
FROM salary_history
WHERE salary > prev_salary;
SELECT
emp_id,
emp_name,
salary_month
FROM (
SELECT
emp_id,
emp_name,
salary_month,
salary,
LAG(salary) OVER (
PARTITION BY emp_id
ORDER BY salary_month
) AS prev_salary
FROM employees
) AS salary_history
WHERE salary > prev_salary;
SELECT * FROM employees ORDER BY emp_id, salary_month;