It groups rows that have the same values in specified columns into summary rows, like grouping all sales by each product.
Click to reveal answer
beginner
How do you use GROUP BY with multiple columns?
You list the columns separated by commas after GROUP BY. This groups rows by unique combinations of those columns.
Click to reveal answer
intermediate
Why would you group by multiple columns instead of just one?
Grouping by multiple columns lets you see detailed summaries for each unique combination, like sales by product and region together.
Click to reveal answer
beginner
Example: What does this query do?
SELECT city, department, COUNT(*) FROM employees GROUP BY city, department;
It counts how many employees work in each department within each city, grouping by both city and department.
Click to reveal answer
intermediate
Can you use ORDER BY with GROUP BY on multiple columns?
Yes, you can order the grouped results by one or more columns to sort the summary rows as you want.
Click to reveal answer
What happens if you use GROUP BY city, department in a query?
ARows are grouped by unique city and department pairs.
BRows are grouped only by city.
CRows are grouped only by department.
DRows are not grouped at all.
✗ Incorrect
Using multiple columns in GROUP BY groups rows by each unique combination of those columns.
Which SQL clause is used to summarize data by groups?
AJOIN
BWHERE
CORDER BY
DGROUP BY
✗ Incorrect
GROUP BY groups rows to allow aggregation functions like COUNT or SUM on each group.
If you want to count employees per city and department, which is correct?
AGROUP BY city
BGROUP BY city, department
CGROUP BY department
DGROUP BY COUNT(*)
✗ Incorrect
Grouping by both city and department counts employees for each unique city-department pair.
Can you use aggregate functions like COUNT() with GROUP BY multiple columns?
AAggregate functions are not related to GROUP BY.
BNo, aggregate functions only work without GROUP BY.
CYes, aggregate functions work on each group.
DOnly COUNT() works, others don't.
✗ Incorrect
Aggregate functions summarize data within each group defined by GROUP BY.
What does this query return?
SELECT product, region, SUM(sales) FROM sales_data GROUP BY product, region;
ATotal sales per product and region combination.
BTotal sales per product only.
CTotal sales per region only.
DAll sales data without grouping.
✗ Incorrect
The query sums sales grouped by each product and region pair.
Explain how GROUP BY with multiple columns works and why it is useful.
Think about grouping data like sorting mail by city and street together.
You got /3 concepts.
Write a simple SQL query using GROUP BY with two columns and explain what it does.
Use example like counting employees by city and department.
You got /3 concepts.
Practice
(1/5)
1. What does the GROUP BY clause with multiple columns do in a MySQL query?
easy
A. It groups rows based on only the first column listed.
B. It groups rows based on the combination of values in all specified columns.
C. It sorts the rows without grouping them.
D. It filters rows that have duplicate values in any column.
Solution
Step 1: Understand GROUP BY behavior
The GROUP BY clause groups rows that have the same values in the specified columns together.
Step 2: Multiple columns effect
When multiple columns are listed, grouping happens on the combined values of all those columns, not individually.
Final Answer:
It groups rows based on the combination of values in all specified columns. -> Option B
Quick Check:
GROUP BY multiple columns groups by combined values [OK]
Hint: GROUP BY multiple columns groups by combined column values [OK]
Common Mistakes:
Thinking it groups by each column separately
Confusing GROUP BY with ORDER BY
Assuming it filters duplicates instead of grouping
2. Which of the following is the correct syntax to group data by columns city and department in MySQL?
easy
A. SELECT city, department FROM employees GROUP BY city, department;
B. SELECT city, department FROM employees GROUP city, department;
C. SELECT city, department FROM employees GROUP BY city department;
D. SELECT city, department FROM employees GROUP BY (city, department);
Solution
Step 1: Identify correct GROUP BY syntax
The correct syntax uses GROUP BY followed by column names separated by commas.
Step 2: Check each option
SELECT city, department FROM employees GROUP BY city, department; uses correct syntax with commas. Options A, B, and D have syntax errors or wrong keywords.
Final Answer:
SELECT city, department FROM employees GROUP BY city, department; -> Option A
Quick Check:
GROUP BY columns separated by commas [OK]
Hint: Use commas to separate columns in GROUP BY [OK]
Common Mistakes:
Omitting commas between columns
Using wrong keywords like GROUP instead of GROUP BY
Using parentheses incorrectly around columns
3. Given the table sales with columns region, product, and amount, what will this query return?
SELECT region, product, SUM(amount) FROM sales GROUP BY region, product;
medium
A. Syntax error due to missing alias for SUM(amount).
B. Total sales amount for each region only.
C. Total sales amount for each product only.
D. Total sales amount for each region and product combination.
Solution
Step 1: Understand GROUP BY with multiple columns
The query groups rows by both region and product together.
Step 2: Apply SUM aggregation
Within each group, it sums the amount values, giving total sales per region-product pair.
Final Answer:
Total sales amount for each region and product combination. -> Option D
Quick Check:
GROUP BY multiple columns sums per combined group [OK]
Hint: GROUP BY multiple columns sums per combined group [OK]
Common Mistakes:
Thinking it sums only by one column
Expecting syntax error without alias (alias optional)
Confusing GROUP BY with WHERE filtering
4. Identify the error in this query:
SELECT city, department, COUNT(*) FROM employees GROUP BY city;
medium
A. Missing department in GROUP BY causes error or incorrect grouping.
B. COUNT(*) cannot be used with GROUP BY.
C. SELECT must include only aggregated columns.
D. GROUP BY should be after WHERE clause.
Solution
Step 1: Check SELECT and GROUP BY columns
The query selects city and department but groups only by city.
Step 2: Understand grouping rules
All non-aggregated columns in SELECT must appear in GROUP BY to avoid errors or unpredictable results.
Final Answer:
Missing department in GROUP BY causes error or incorrect grouping. -> Option A
Quick Check:
All selected non-aggregated columns must be in GROUP BY [OK]
Hint: Include all non-aggregated SELECT columns in GROUP BY [OK]
Common Mistakes:
Selecting columns not in GROUP BY without aggregation
Thinking COUNT(*) is invalid with GROUP BY
Misplacing GROUP BY clause
5. You have a transactions table with columns store_id, employee_id, and sales_amount. You want to find the total sales per store and employee but only for employees with total sales above 1000. Which query correctly achieves this?
hard
A. SELECT store_id, employee_id, SUM(sales_amount) FROM transactions GROUP BY store_id HAVING SUM(sales_amount) > 1000;
B. SELECT store_id, employee_id, SUM(sales_amount) FROM transactions WHERE SUM(sales_amount) > 1000 GROUP BY store_id, employee_id;
C. SELECT store_id, employee_id, SUM(sales_amount) FROM transactions GROUP BY store_id, employee_id HAVING SUM(sales_amount) > 1000;
D. SELECT store_id, employee_id, SUM(sales_amount) FROM transactions GROUP BY employee_id, store_id WHERE SUM(sales_amount) > 1000;
Solution
Step 1: Group by both store_id and employee_id
We need totals per store and employee, so GROUP BY both columns together.
Step 2: Filter groups with HAVING clause
Use HAVING to filter groups where total sales exceed 1000. WHERE cannot filter aggregated results.
Final Answer:
SELECT store_id, employee_id, SUM(sales_amount) FROM transactions GROUP BY store_id, employee_id HAVING SUM(sales_amount) > 1000; -> Option C
Quick Check:
Use HAVING to filter aggregated groups [OK]
Hint: Use HAVING to filter after GROUP BY aggregation [OK]
Common Mistakes:
Using WHERE to filter aggregated results
Grouping by only one column instead of both
Placing WHERE after GROUP BY
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.