Bird
0
0

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:
  1. Step 1: Use DELETE with RETURNING inside CTE

    Writable CTE allows deleting rows and returning them in one query.
  2. 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.
  3. Final Answer:

    WITH deleted AS (DELETE FROM users WHERE active = false RETURNING *) SELECT * FROM deleted; -> Option A
  4. 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

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More PostgreSQL Quizzes