Challenge - 5 Problems
GROUP BY Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate2:00remaining
Output of GROUP BY with COUNT
Given the table Sales with columns
product_id and quantity, what is the output of this query?SELECT product_id, COUNT(*) AS total_sales
FROM Sales
GROUP BY product_id;
SQL
CREATE TABLE Sales (product_id INT, quantity INT); INSERT INTO Sales VALUES (1, 10), (2, 5), (1, 7), (3, 2), (2, 3);
Attempts:
2 left
💡 Hint
COUNT(*) counts rows per group, not sum of quantities.
✗ Incorrect
The query groups rows by product_id and counts how many rows each product has. Product 1 appears twice, product 2 twice, product 3 once.
❓ query_result
intermediate2:00remaining
SUM with GROUP BY output
Consider the table Orders with columns
customer_id and order_amount. What is the output of this query?SELECT customer_id, SUM(order_amount) AS total_spent
FROM Orders
GROUP BY customer_id;
SQL
CREATE TABLE Orders (customer_id INT, order_amount DECIMAL); INSERT INTO Orders VALUES (101, 50.5), (102, 20.0), (101, 30.0), (103, 15.0), (102, 25.0);
Attempts:
2 left
💡 Hint
SUM adds all order_amount values per customer.
✗ Incorrect
The query sums order_amount for each customer_id. Customer 101 has 50.5 + 30.0 = 80.5, customer 102 has 20.0 + 25.0 = 45.0, customer 103 has 15.0.
📝 Syntax
advanced2:00remaining
Identify the syntax error in GROUP BY query
Which option contains a syntax error in this GROUP BY query?
SELECT department, AVG(salary) FROM Employees GROUP BY department;
Attempts:
2 left
💡 Hint
GROUP BY must be followed by column names.
✗ Incorrect
Option A ends GROUP BY without specifying columns, causing syntax error. Others are valid SQL.
❓ optimization
advanced2:00remaining
Optimizing GROUP BY with indexes
You have a large Transactions table with columns
user_id, amount, and date. Which option best improves performance of this query?SELECT user_id, SUM(amount) FROM Transactions WHERE date >= '2024-01-01' GROUP BY user_id;
Attempts:
2 left
💡 Hint
Indexes help filter rows before grouping.
✗ Incorrect
Index on (date, user_id) helps filter by date first, then group by user_id efficiently.
🧠 Conceptual
expert2:00remaining
Understanding HAVING vs WHERE with GROUP BY
Which statement correctly explains the difference between WHERE and HAVING clauses in a GROUP BY query?
Attempts:
2 left
💡 Hint
Think about when filtering happens in the query process.
✗ Incorrect
WHERE filters individual rows before grouping; HAVING filters groups after aggregation functions are applied.