How can you delete all inactive users and return their details in one query using writable CTEs?
hard📝 Application Q9 of 15
PostgreSQL - Common Table Expressions
How can you delete all inactive users and return their details in one query using writable CTEs?
AWITH deleted AS (DELETE FROM users WHERE active = false RETURNING *) SELECT * FROM deleted;
BDELETE FROM users WHERE active = false; SELECT * FROM users WHERE active = false;
CWITH deleted AS (SELECT * FROM users WHERE active = false) DELETE FROM users WHERE active = false RETURNING *;
DWITH deleted AS (UPDATE users SET active = false WHERE active = false RETURNING *) SELECT * FROM deleted;
Step-by-Step Solution
Solution:
Step 1: Use DELETE with RETURNING inside CTE
Writable CTE allows deleting rows and returning them in one query.
Step 2: Verify options
WITH deleted AS (DELETE FROM users WHERE active = false RETURNING *) SELECT * FROM deleted; correctly deletes inactive users and returns their details; others misuse syntax or logic.
Final Answer:
WITH deleted AS (DELETE FROM users WHERE active = false RETURNING *) SELECT * FROM deleted; -> Option A
Quick Check:
Writable CTE DELETE with RETURNING returns deleted rows [OK]
Quick Trick:DELETE with RETURNING inside CTE returns deleted rows [OK]
Common Mistakes:
Running DELETE and SELECT separately
Using SELECT inside CTE without DELETE
Confusing UPDATE with DELETE
Master "Common Table Expressions" in PostgreSQL
9 interactive learning modes - each teaches the same concept differently