Bird
Raised Fist0
PostgreSQLquery~10 mins

Why result control matters in PostgreSQL - Test Your Understanding

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

Complete the code to select all columns from the employees table.

PostgreSQL
SELECT [1] FROM employees;
Drag options to blanks, or click blank then click option'
AALL_COLUMNS
BALL
CANY
D*
Attempts:
3 left
💡 Hint
Common Mistakes
Using ALL or ANY instead of *
Trying to write ALL_COLUMNS which is not valid SQL
2fill in blank
medium

Complete the code to get only unique department names from the departments table.

PostgreSQL
SELECT [1] department_name FROM departments;
Drag options to blanks, or click blank then click option'
ADISTINCT
BUNIQUE
CSINGLE
DONLY
Attempts:
3 left
💡 Hint
Common Mistakes
Using UNIQUE which is not a valid SQL keyword here
Using ONLY which is not a SQL keyword
3fill in blank
hard

Fix the error in the query to order employees by salary descending.

PostgreSQL
SELECT * FROM employees ORDER BY salary [1];
Drag options to blanks, or click blank then click option'
AASC
BDOWN
CDESC
DBACK
Attempts:
3 left
💡 Hint
Common Mistakes
Using ASC which orders ascending
Using DOWN or BACK which are not valid SQL keywords
4fill in blank
hard

Fill both blanks to select employee names and salaries where salary is greater than 50000.

PostgreSQL
SELECT employee_name, salary FROM employees WHERE salary [1] [2];
Drag options to blanks, or click blank then click option'
A>
B50000
C<
D100000
Attempts:
3 left
💡 Hint
Common Mistakes
Using less than operator < instead of >
Using 100000 instead of 50000
5fill in blank
hard

Fill all three blanks to create a query that selects department names and counts employees, grouping by department and showing only groups with more than 5 employees.

PostgreSQL
SELECT [1], COUNT(*) FROM employees GROUP BY [2] HAVING COUNT(*) [3] 5;
Drag options to blanks, or click blank then click option'
Adepartment_name
C>
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using different columns in SELECT and GROUP BY
Using less than operator < in HAVING clause

Practice

(1/5)
1. Why is result control important when querying a database?
easy
A. It deletes unnecessary data from the database.
B. It makes the database run slower.
C. It helps you get clear and useful data by filtering and sorting.
D. It automatically fixes errors in your data.

Solution

  1. Step 1: Understand what result control does

    Result control means filtering, sorting, and limiting data to get clear results.
  2. Step 2: Identify the benefit of result control

    It helps avoid confusion and saves time by showing only useful data.
  3. Final Answer:

    It helps you get clear and useful data by filtering and sorting. -> Option C
  4. Quick Check:

    Result control = clear, useful data [OK]
Hint: Result control shapes data output for clarity and usefulness [OK]
Common Mistakes:
  • Thinking result control deletes data
  • Believing it slows down queries
  • Assuming it fixes data errors automatically
2. Which of the following is the correct SQL syntax to limit query results to 5 rows in PostgreSQL?
easy
A. SELECT * FROM table WHERE ROWS = 5;
B. SELECT * FROM table TOP 5;
C. SELECT * FROM table FETCH FIRST 5;
D. SELECT * FROM table LIMIT 5;

Solution

  1. Step 1: Recall PostgreSQL syntax for limiting rows

    PostgreSQL uses LIMIT to restrict the number of rows returned.
  2. Step 2: Compare options with correct syntax

    SELECT * FROM table LIMIT 5; uses LIMIT 5, which is correct. SELECT * FROM table TOP 5; uses TOP, which is SQL Server syntax. SELECT * FROM table FETCH FIRST 5; is invalid syntax (missing ROWS ONLY). SELECT * FROM table WHERE ROWS = 5; is invalid syntax.
  3. Final Answer:

    SELECT * FROM table LIMIT 5; -> Option D
  4. Quick Check:

    LIMIT 5 limits rows in PostgreSQL [OK]
Hint: Use LIMIT to restrict rows in PostgreSQL queries [OK]
Common Mistakes:
  • Using TOP instead of LIMIT
  • Trying FETCH FIRST without correct syntax
  • Using WHERE to limit rows
3. Given the table employees with columns id, name, and salary, what will this query return?
SELECT name FROM employees ORDER BY salary DESC LIMIT 3;
medium
A. The names of the 3 employees with the highest salaries.
B. The names of the 3 employees with the lowest salaries.
C. The names of all employees sorted by salary ascending.
D. An error because LIMIT cannot be used with ORDER BY.

Solution

  1. Step 1: Understand ORDER BY salary DESC

    This sorts employees by salary from highest to lowest.
  2. Step 2: Apply LIMIT 3

    Limits the output to the top 3 rows after sorting.
  3. Final Answer:

    The names of the 3 employees with the highest salaries. -> Option A
  4. Quick Check:

    ORDER BY DESC + LIMIT 3 = top 3 highest [OK]
Hint: ORDER BY DESC then LIMIT gets top N results [OK]
Common Mistakes:
  • Confusing DESC with ASC order
  • Thinking LIMIT applies before sorting
  • Believing LIMIT causes syntax error with ORDER BY
4. You wrote this query but it returns all rows instead of just 10:
SELECT * FROM sales WHERE amount > 100 LIMIT 10 OFFSET 5;

What is the most likely reason?
medium
A. The query is correct; it returns only 10 rows after skipping 5.
B. The WHERE condition is incorrect and matches all rows.
C. LIMIT and OFFSET must be in uppercase to work.
D. The OFFSET clause is not supported in PostgreSQL.

Solution

  1. Step 1: Check syntax of LIMIT and OFFSET

    PostgreSQL supports LIMIT and OFFSET in any case and syntax is correct.
  2. Step 2: Understand WHERE clause effect

    WHERE amount > 100 filters rows; if many match, LIMIT 10 OFFSET 5 returns 10 rows after skipping 5.
  3. Final Answer:

    The query is correct; it returns only 10 rows after skipping 5. -> Option A
  4. Quick Check:

    LIMIT + OFFSET works as expected in PostgreSQL [OK]
Hint: LIMIT and OFFSET control rows returned and skipped [OK]
Common Mistakes:
  • Thinking OFFSET is unsupported
  • Believing case sensitivity matters for keywords
  • Assuming WHERE is ignored
5. You want to get the top 3 highest paid employees from each department in a table employees(department, name, salary). Which approach best controls the result to achieve this?
hard
A. Use ORDER BY salary DESC LIMIT 3 without partitioning.
B. Use a window function with ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) and filter rows where row number ≤ 3.
C. Use GROUP BY department and MAX(salary) only.
D. Use LIMIT 3 and GROUP BY name.

Solution

  1. Step 1: Understand the need for top N per group

    We want top 3 salaries per department, not overall top 3.
  2. Step 2: Identify correct SQL technique

    Window functions with ROW_NUMBER() partitioned by department rank salaries per group.
  3. Step 3: Filter rows with row number ≤ 3

    This returns top 3 employees per department correctly.
  4. Final Answer:

    Use a window function with ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) and filter rows where row number ≤ 3. -> Option B
  5. Quick Check:

    Window functions + filtering = top N per group [OK]
Hint: Use ROW_NUMBER() with PARTITION BY for top N per group [OK]
Common Mistakes:
  • Using LIMIT without partitioning
  • Using GROUP BY without ranking
  • Confusing GROUP BY columns
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