Challenge - 5 Problems
COALESCE Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate2:00remaining
Output of COALESCE with multiple NULLs
Given the table employees with columns
id, name, and bonus where some bonus values are NULL, what is the output of this query?SELECT id, COALESCE(bonus, 1000) AS bonus_amount FROM employees ORDER BY id;
PostgreSQL
CREATE TABLE employees (id INT, name TEXT, bonus INT); INSERT INTO employees VALUES (1, 'Alice', NULL), (2, 'Bob', 500), (3, 'Charlie', NULL);
Attempts:
2 left
💡 Hint
COALESCE returns the first non-NULL value from its arguments.
✗ Incorrect
The COALESCE function replaces NULL bonus values with 1000. Bob's bonus is 500, so it stays the same.
🧠 Conceptual
intermediate1:30remaining
Understanding COALESCE with multiple arguments
What will be the result of this expression in PostgreSQL?
SELECT COALESCE(NULL, NULL, 'first non-null', 'second non-null');
Attempts:
2 left
💡 Hint
COALESCE returns the first argument that is not NULL.
✗ Incorrect
COALESCE checks each argument in order and returns the first one that is not NULL, which is 'first non-null'.
📝 Syntax
advanced1:30remaining
Identify the syntax error in COALESCE usage
Which option contains a syntax error when using COALESCE in PostgreSQL?
Attempts:
2 left
💡 Hint
Check for missing commas between arguments.
✗ Incorrect
Option B is missing a comma between NULL and 5, causing a syntax error.
❓ optimization
advanced2:30remaining
Optimizing COALESCE with subqueries
Consider this query:
Which option best improves performance without changing the output?
SELECT id, COALESCE((SELECT bonus FROM bonuses WHERE bonuses.emp_id = employees.id), 0) AS bonus_amount FROM employees;
Which option best improves performance without changing the output?
Attempts:
2 left
💡 Hint
Replacing subqueries with joins often improves query speed.
✗ Incorrect
LEFT JOIN avoids running a subquery for each row, improving performance while keeping the same results.
🔧 Debug
expert3:00remaining
Debugging unexpected NULL results with COALESCE
A developer runs this query:
But some rows still show NULL for the bonus column. Which option explains the most likely cause?
SELECT id, COALESCE(bonus, 0) FROM employees;
But some rows still show NULL for the bonus column. Which option explains the most likely cause?
Attempts:
2 left
💡 Hint
COALESCE only replaces SQL NULL, not other types of null-like values.
✗ Incorrect
In PostgreSQL, JSON null values are not SQL NULL and COALESCE does not replace them, so they appear as NULL in output.