SQL GROUP BY
GROUP BY
is used to group rows that share the same values in specified columns and apply aggregate functions to each group.
🔹 Basic Syntax
SELECT column1, aggregate_function(column2)
FROM table_name
GROUP BY column1;
🔹 Example: Group Employees by Department
SELECT department, COUNT(*) AS total_employees, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
This query groups employees by department and calculates:
- Total employees per department
- Average salary per department
🔹 Multiple Columns Grouping
SELECT department, job_title, COUNT(*)
FROM employees
GROUP BY department, job_title;
Groups data by both department and job title.
🔹 Using GROUP BY with HAVING (Filter Groups)
SELECT department, COUNT(*) AS total_employees
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
Only shows departments with more than 5 employees.
🧠 Quick Recap
Concept | Description |
---|---|
GROUP BY | Groups rows sharing same column values |
Works with | Aggregate functions like COUNT, SUM, AVG |
Can group by | One or more columns |
HAVING clause | Filters grouped results (unlike WHERE) |
✅ Use GROUP BY
to summarize data by categories