Bird
0
0

How do you correctly write a query to count the number of rows where age is less than 30 using CASE inside COUNT?

easy📝 Syntax Q3 of 15
SQL - CASE Expressions
How do you correctly write a query to count the number of rows where age is less than 30 using CASE inside COUNT?
ASELECT COUNT(CASE age < 30 THEN NULL ELSE 1 END) FROM people;
BSELECT COUNT(CASE age < 30 THEN 1 ELSE 0 END) FROM people;
CSELECT COUNT(CASE WHEN age < 30 THEN 'yes' ELSE 'no' END) FROM people;
DSELECT COUNT(CASE WHEN age < 30 THEN 1 ELSE NULL END) FROM people;
Step-by-Step Solution
Solution:
  1. Step 1: Use CASE with WHEN condition

    The CASE statement should specify WHEN age < 30 THEN 1 ELSE NULL to count only matching rows.
  2. Step 2: Use COUNT to count non-null values

    COUNT counts non-null values, so only rows where age < 30 contribute to the count.
  3. Final Answer:

    SELECT COUNT(CASE WHEN age < 30 THEN 1 ELSE NULL END) FROM people; -> Option D
  4. Quick Check:

    COUNT ignores NULLs, so only age < 30 rows counted [OK]
Quick Trick: COUNT counts non-null values only [OK]
Common Mistakes:
  • Using ELSE 0 causes all rows to be counted
  • Omitting WHEN keyword in CASE
  • Returning strings instead of numbers in CASE

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More SQL Quizzes