MySQL’s GROUP BY

MySQL’s GROUP BY clause groups rows with identical values in specified columns into summary rows, typically used with aggregate functions like COUNT, SUM, AVG, MAX, or MIN. datacamp

Basic Syntax

The GROUP BY follows SELECT, FROM, and WHERE clauses. Only grouped columns or aggregates appear in SELECT to avoid errors (unless ONLY_FULL_GROUP_BY is disabled). mysqltutorial

SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;

This counts employees per department. geeksforgeeks

Multiple Columns

Group by several columns for finer granularity, like department and job_title. datacamp

SELECT department, job_title, AVG(salary) AS avg_salary
FROM employees
GROUP BY department, job_title;

HAVING Clause

Filter groups post-aggregation (WHERE filters rows pre-grouping). blog.devart

SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;

Shows departments with average salary over 50k. tutorialspoint

Common Tips