Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What happens to NULL values when using GROUP BY in SQL?
NULL values are grouped together as a single group in the result set.
Click to reveal answer
beginner
Can GROUP BY distinguish between different NULL values?
No, all NULL values are treated as equal and grouped into one group.
Click to reveal answer
intermediate
How does GROUP BY handle columns with NULL values in aggregation?
GROUP BY treats all NULLs as one group, so aggregate functions like COUNT or SUM apply to that group as a whole.
Click to reveal answer
intermediate
Why is it important to know how NULLs behave in GROUP BY?
Because NULLs can affect the number of groups and the results of aggregate functions, impacting query results and analysis.
Click to reveal answer
beginner
Write a simple SQL query that groups rows by a column that contains NULL values.
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;
Click to reveal answer
When using GROUP BY on a column with NULL values, how are the NULLs treated?
ANULLs are ignored and excluded from groups
BAll NULLs are grouped together as one group
CEach NULL is treated as a separate group
DNULLs cause an error in GROUP BY
✗ Incorrect
In SQL, all NULL values in a GROUP BY column are grouped together as a single group.
If a column has three NULL values and two non-NULL values, how many groups will GROUP BY create?
A3
B4
C2
D5
✗ Incorrect
GROUP BY groups all NULLs together as one group plus each distinct non-NULL value forms its own group, so total groups = 1 (NULL group) + 2 (non-NULL values) = 3 groups.
Which aggregate function counts NULL values in a GROUP BY group?
ACOUNT(*)
BCOUNT(column_name)
CSUM(column_name)
DAVG(column_name)
✗ Incorrect
COUNT(*) counts all rows including those with NULLs, while COUNT(column_name) ignores NULLs.
What is the result of grouping by a column where all values are NULL?
ANo groups are created
BAn error occurs
COne group containing all rows
DMultiple groups for each NULL
✗ Incorrect
All NULL values are grouped together, so one group containing all rows is created.
Does GROUP BY treat NULL as equal to any other value?
ANo, NULL causes grouping to fail
BNo, NULL is distinct from all values including NULL
CYes, NULL equals zero
DYes, all NULLs are equal to each other
✗ Incorrect
GROUP BY treats all NULLs as equal to each other, grouping them into one group.
Explain how SQL GROUP BY handles NULL values in a column.
Think about how NULLs are treated as equal or different in grouping.
You got /4 concepts.
Describe a scenario where understanding GROUP BY behavior with NULLs is important.
Consider reports or summaries with incomplete data.
You got /4 concepts.
Practice
(1/5)
1. What happens to NULL values when you use GROUP BY on a column containing them?
easy
A. All NULL values are grouped together as one group.
B. NULL values are ignored and not included in any group.
C. Each NULL value forms its own separate group.
D. GROUP BY causes an error if NULL values exist.
Solution
Step 1: Understand how GROUP BY handles NULLs
In SQL, GROUP BY treats all NULL values in a column as equal, grouping them into one group.
Step 2: Confirm behavior with example
If a column has multiple rows with NULL, they appear as a single group in the result.
Final Answer:
All NULL values are grouped together as one group. -> Option A
Quick Check:
GROUP BY NULL = one group [OK]
Hint: Remember: NULLs group together, not separately [OK]
Common Mistakes:
Thinking NULLs are ignored in GROUP BY
Assuming each NULL is a separate group
Believing GROUP BY errors on NULL values
2. Which of the following SQL queries correctly groups rows by a column that may contain NULL values?
easy
A. SELECT category, COUNT(*) FROM products GROUP BY category;
B. SELECT category, COUNT(*) FROM products GROUP BY category WHERE category IS NOT NULL;
C. SELECT category, COUNT(*) FROM products WHERE category IS NOT NULL GROUP BY category;
D. SELECT category, COUNT(*) FROM products GROUP BY category HAVING category IS NOT NULL;
Solution
Step 1: Check GROUP BY syntax with NULLs
SELECT category, COUNT(*) FROM products GROUP BY category; uses correct syntax: grouping by category including NULLs. GROUP BY works with NULL values without extra filters.
Step 2: Analyze other options
Options A and D misuse WHERE and HAVING clauses with GROUP BY. SELECT category, COUNT(*) FROM products WHERE category IS NOT NULL GROUP BY category; filters out NULLs before grouping, which is valid but excludes NULL groups.
Final Answer:
SELECT category, COUNT(*) FROM products GROUP BY category; -> Option A
Quick Check:
GROUP BY with NULLs needs no special filter [OK]
Hint: GROUP BY works directly with NULLs, no WHERE needed [OK]
Common Mistakes:
Using WHERE after GROUP BY (syntax error)
Filtering NULLs before grouping unintentionally
Misusing HAVING clause for filtering NULLs
3. Given the table sales with data:
product | region
-------|--------
A | East
B | NULL
A | NULL
B | East
NULL | West
NULL | NULL
What is the result of:
SELECT region, COUNT(*) FROM sales GROUP BY region ORDER BY region;
GROUP BY NULL groups count 3, NULL shown as null [OK]
Hint: NULLs group together and show as null, not 'NULL' string [OK]
Common Mistakes:
Counting NULL rows separately
Displaying NULL as string 'NULL'
Miscounting NULL group size
4. Consider this query:
SELECT department, COUNT(*) FROM employees GROUP BY department;
It returns an error. Which fix will correctly handle NULL values in department to avoid errors?
medium
A. Add WHERE department IS NOT NULL before GROUP BY.
B. No fix needed; GROUP BY never errors on NULL.
C. Use HAVING department IS NOT NULL after GROUP BY.
D. Replace NULL with a string using COALESCE(department, 'Unknown') in SELECT and GROUP BY.
Solution
Step 1: Understand why no error occurs
In standard SQL, GROUP BY handles NULL values correctly by grouping all NULLs together into one group. No error is thrown.
Step 2: Confirm no fix needed
The query runs successfully and includes a NULL group in the results.
Final Answer:
No fix needed; GROUP BY never errors on NULL. -> Option B
Quick Check:
GROUP BY NULL = no error [OK]
Hint: GROUP BY handles NULLs without error [OK]
Common Mistakes:
Thinking GROUP BY errors on NULLs
Unnecessarily filtering out NULLs with WHERE
Misusing HAVING for pre-group filtering
5. You have a table orders with columns customer_id and status, where status can be NULL. You want to count orders by status, treating all NULL statuses as 'Pending'. Which query correctly achieves this?
hard
A. SELECT status, COUNT(*) FROM orders GROUP BY status WHERE status IS NULL;
B. SELECT status, COUNT(*) FROM orders GROUP BY status HAVING status IS NOT NULL;
C. SELECT COALESCE(status, 'Pending') AS order_status, COUNT(*) FROM orders GROUP BY order_status;
D. SELECT status, COUNT(*) FROM orders GROUP BY status ORDER BY status;
Solution
Step 1: Replace NULL with 'Pending' using COALESCE
COALESCE(status, 'Pending') converts NULL statuses to 'Pending' for counting.
Step 2: Group by the alias used in SELECT
Grouping by order_status ensures all NULLs are counted under 'Pending'.
Final Answer:
SELECT COALESCE(status, 'Pending') AS order_status, COUNT(*) FROM orders GROUP BY order_status; -> Option C
Quick Check:
COALESCE + GROUP BY alias counts NULL as 'Pending' [OK]
Hint: Use COALESCE and group by alias to count NULLs as desired [OK]