Bird
Raised Fist0
PostgreSQLquery~10 mins

ANY and ALL with arrays in PostgreSQL - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to select rows where the value is equal to any element in the array.

PostgreSQL
SELECT * FROM products WHERE price = ANY([1]);
Drag options to blanks, or click blank then click option'
AARRAY[10, 20, 30]
B[10, 20, 30]
C(10, 20, 30)
D{10, 20, 30}
Attempts:
3 left
💡 Hint
Common Mistakes
Using square brackets [] without ARRAY keyword.
Using curly braces {} which is not valid in SQL queries.
Using parentheses () which is for tuples, not arrays.
2fill in blank
medium

Complete the code to select rows where the value is greater than all elements in the array.

PostgreSQL
SELECT * FROM orders WHERE quantity > ALL([1]);
Drag options to blanks, or click blank then click option'
AARRAY[5, 10, 15]
B[5, 10, 15]
C(5, 10, 15)
D{5, 10, 15}
Attempts:
3 left
💡 Hint
Common Mistakes
Using curly braces or parentheses instead of ARRAY.
Forgetting the ARRAY keyword.
3fill in blank
hard

Fix the error in the query to correctly check if the column value is less than any element in the array.

PostgreSQL
SELECT * FROM sales WHERE amount < ANY([1]);
Drag options to blanks, or click blank then click option'
A(100, 200, 300)
B[100, 200, 300]
C{100, 200, 300}
DARRAY[100, 200, 300]
Attempts:
3 left
💡 Hint
Common Mistakes
Using square brackets without ARRAY keyword.
Using curly braces or parentheses instead of ARRAY.
4fill in blank
hard

Fill both blanks to select rows where the score is greater than all elements in the array and less than any element in another array.

PostgreSQL
SELECT * FROM results WHERE score > ALL([1]) AND score < ANY([2]);
Drag options to blanks, or click blank then click option'
AARRAY[50, 60, 70]
BARRAY[80, 90, 100]
C[50, 60, 70]
D[80, 90, 100]
Attempts:
3 left
💡 Hint
Common Mistakes
Using square brackets without ARRAY keyword.
Mixing array syntax styles.
5fill in blank
hard

Fill all three blanks to select rows where age is less than all elements in one array, greater than any element in another array, and equal to any element in a third array.

PostgreSQL
SELECT * FROM users WHERE age < ALL([1]) AND age > ANY([2]) AND age = ANY([3]);
Drag options to blanks, or click blank then click option'
AARRAY[40, 50, 60]
BARRAY[20, 25, 30]
CARRAY[25, 30, 35]
D[40, 50, 60]
Attempts:
3 left
💡 Hint
Common Mistakes
Using square brackets without ARRAY keyword.
Using curly braces or parentheses instead of ARRAY.

Practice

(1/5)
1. What does the ANY keyword do when used with an array in PostgreSQL?
easy
A. It checks if a value matches at least one element in the array.
B. It checks if a value matches all elements in the array.
C. It returns all elements of the array.
D. It returns the first element of the array.

Solution

  1. Step 1: Understand the ANY keyword

    ANY compares a single value to each element in an array and returns true if it matches any one of them.
  2. Step 2: Compare with ALL keyword

    ALL requires the value to match every element, which is different from ANY.
  3. Final Answer:

    It checks if a value matches at least one element in the array. -> Option A
  4. Quick Check:

    ANY = matches any element [OK]
Hint: ANY means match at least one element in array [OK]
Common Mistakes:
  • Confusing ANY with ALL
  • Thinking ANY returns all elements
  • Assuming ANY returns first element only
2. Which of the following is the correct syntax to check if the number 5 is equal to any element in the array ARRAY[3,5,7] in PostgreSQL?
easy
A. SELECT 5 = ANY ARRAY[3,5,7];
B. SELECT 5 = ANY[3,5,7];
C. SELECT 5 = ANY(ARRAY[3,5,7]);
D. SELECT 5 = ALL ARRAY(3,5,7);

Solution

  1. Step 1: Check correct ANY syntax

    The correct syntax uses = ANY(ARRAY[...]) with parentheses around ARRAY.
  2. Step 2: Identify wrong options

    SELECT 5 = ANY ARRAY[3,5,7]; misses parentheses around ARRAY, causing syntax error. SELECT 5 = ANY[3,5,7]; uses square brackets incorrectly. SELECT 5 = ALL ARRAY(3,5,7); uses ALL instead of ANY and wrong ARRAY syntax without [].
  3. Final Answer:

    SELECT 5 = ANY(ARRAY[3,5,7]); -> Option C
  4. Quick Check:

    = ANY(ARRAY[...]) [OK]
Hint: Use = ANY(ARRAY[...]) with parentheses [OK]
Common Mistakes:
  • Omitting parentheses around ARRAY
  • Using square brackets instead of ARRAY keyword
  • Mixing ANY and ALL keywords
3. Given the query:
SELECT 4 > ALL ARRAY[2,3,5];
What is the result?
medium
A. true
B. null
C. false
D. syntax error

Solution

  1. Step 1: Understand ALL with comparison

    The query uses 4 > ALL ARRAY[2,3,5] but misses required parentheses around the array.
  2. Step 2: Correct syntax and error

    Correct is 4 > ALL (ARRAY[2,3,5]). Without (), it causes syntax error. (Note: if fixed, 4>5 is false so result false, but as given: error.)
  3. Final Answer:

    syntax error -> Option D
  4. Quick Check:

    Missing () around ARRAY -> syntax error [OK]
Hint: op ALL requires (ARRAY[...]) [OK]
Common Mistakes:
  • Assuming query runs and gets false
  • Forgetting parentheses around ARRAY
  • Confusing with ANY behavior
4. Identify the error in this query:
SELECT * FROM users WHERE age = ALL [20, 30, 40];
medium
A. ALL cannot be used with numbers
B. Using square brackets instead of ARRAY keyword
C. Missing comparison operator
D. No error, query is correct

Solution

  1. Step 1: Check array syntax in WHERE clause

    PostgreSQL requires arrays to be written with ARRAY keyword, not square brackets alone.
  2. Step 2: Identify correct syntax

    The correct syntax is age = ALL (ARRAY[20, 30, 40]). Using just [20, 30, 40] causes syntax error.
  3. Final Answer:

    Using square brackets instead of ARRAY keyword -> Option B
  4. Quick Check:

    Arrays need ARRAY keyword, not just brackets [OK]
Hint: Use ARRAY[...] not just brackets for arrays [OK]
Common Mistakes:
  • Using [] instead of ARRAY[]
  • Thinking ALL can't compare numbers
  • Missing operator after WHERE
5. You want to find all products priced less than every price in the array ARRAY[100, 200, 300]. Which query correctly achieves this?
hard
A. SELECT * FROM products WHERE price < ALL (ARRAY[100, 200, 300]);
B. SELECT * FROM products WHERE price < ANY ARRAY[100, 200, 300];
C. SELECT * FROM products WHERE price > ALL ARRAY[100, 200, 300];
D. SELECT * FROM products WHERE price = ALL ARRAY[100, 200, 300];

Solution

  1. Step 1: Understand the requirement

    We want products with price less than every price in the array, meaning price must be less than 100 (the minimum).
  2. Step 2: Choose correct operator and keyword

    Using price < ALL (ARRAY[100, 200, 300]) checks if price is less than all elements. ANY would only require less than one.
  3. Final Answer:

    SELECT * FROM products WHERE price < ALL (ARRAY[100, 200, 300]); -> Option A
  4. Quick Check:

    Less than ALL means less than every element [OK]
Hint: Use < ALL (ARRAY[...]) to check less than every element [OK]
Common Mistakes:
  • Using ANY instead of ALL for all elements
  • Using > instead of < for less than
  • Using = ALL which checks equality
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard