IntermediateGROUP BY & Aggregation
HAVING: departments with budget over 1 million
The query
SQL
SELECT
d.dept_name,
d.budget,
COUNT(e.emp_id) AS employees,
SUM(e.salary) AS salary_cost
FROM departments d
LEFT JOIN employees e ON d.dept_id = e.dept_id
GROUP BY d.dept_id, d.dept_name, d.budget
HAVING d.budget > 1000000
ORDER BY d.budget DESC;Note
“HAVING can filter on both aggregate functions AND non-aggregated grouped columns.