SQL - GROUP BY & HAVING
Overview
GROUP BY forms groups; aggregations (COUNT, SUM, AVG, MIN, MAX) summarize each group. HAVING filters after aggregation.
SELECT department_id, COUNT(*) AS employees, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING COUNT(*) >= 2;
SELECT department_id, COUNT(*) AS employees, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING COUNT(*) >= 2;
SELECT department_id, COUNT(*) AS employees, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING COUNT(*) >= 2;
Prerequisite
Load the Standard Test Data.
Expected Output
Only department_id = 1 has at least 2 employees in the seed data:
department_id | employees | avg_salary |
---|---|---|
1 | 3 | 113333.33 |