Intermediate · Lesson 4 of 20

Grouping with GROUP BY

GROUP BY groups rows together for aggregate calculations.

Count employees per department:

SELECT department_id, COUNT(*)
FROM employees
GROUP BY department_id;

Average salary per department:

SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id;

Rule: Every column in SELECT must be either:

  • In GROUP BY, or
  • Inside an aggregate function (COUNT, SUM, etc.)
Check your understanding

Count how many employees are in each department.

Examples run on the employees sample database. Open any of them in the playground to experiment.