0
0
PostgreSQLquery~20 mins

GENERATE_SERIES for sequence creation in PostgreSQL - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Generate Series Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
query_result
intermediate
1:30remaining
Output of a simple generate_series query
What is the output of the following SQL query?
SELECT * FROM generate_series(1, 5);
PostgreSQL
SELECT * FROM generate_series(1, 5);
A[5, 4, 3, 2, 1]
B[1, 2, 3, 4]
C[0, 1, 2, 3, 4, 5]
D[1, 2, 3, 4, 5]
Attempts:
2 left
💡 Hint
generate_series(start, stop) produces a sequence including both start and stop values.
query_result
intermediate
1:30remaining
Output of generate_series with step value
What is the output of this query?
SELECT * FROM generate_series(2, 10, 3);
PostgreSQL
SELECT * FROM generate_series(2, 10, 3);
A[2, 5, 8]
B[2, 3, 5, 8, 10]
C[2, 5, 8, 11]
D[2, 4, 6, 8, 10]
Attempts:
2 left
💡 Hint
The third argument is the step size between numbers.
📝 Syntax
advanced
1:30remaining
Identify the syntax error in generate_series usage
Which option contains a syntax error when using generate_series in PostgreSQL?
ASELECT * FROM generate_series(1, 10, 2);
BSELECT * FROM generate_series(1 TO 10);
CSELECT * FROM generate_series(1, 10);
DSELECT * FROM generate_series(5, 1, -1);
Attempts:
2 left
💡 Hint
Check the function call syntax carefully.
🧠 Conceptual
advanced
1:30remaining
Understanding generate_series with negative step
What will be the output of this query?
SELECT * FROM generate_series(5, 1, -1);
PostgreSQL
SELECT * FROM generate_series(5, 1, -1);
A[5, 4, 3, 2, 1]
B[1, 2, 3, 4, 5]
C[] (empty set)
D[5, 4, 3, 2]
Attempts:
2 left
💡 Hint
Negative step counts down from start to stop inclusive.
optimization
expert
2:00remaining
Efficiently generate a large sequence with generate_series
You want to generate a sequence of integers from 1 to 1,000,000 in PostgreSQL. Which query is the most efficient?
ASELECT * FROM generate_series(1, 1000000) WHERE generate_series % 2 = 0;
BSELECT * FROM generate_series(1, 1000000) ORDER BY 1 DESC;
CSELECT * FROM generate_series(1, 1000000);
DSELECT * FROM generate_series(1, 1000000) LIMIT 1000000;
Attempts:
2 left
💡 Hint
Consider the cost of filtering and ordering large sequences.