Bird
Raised Fist0
Intro to Computingfundamentals~20 mins

SQL as the query language in Intro to Computing - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
SQL Query Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🔍 Analysis
intermediate
2:00remaining
What is the output of this SQL query?

Consider a table Employees with columns id, name, and salary. The table has the following rows:

  • (1, 'Alice', 5000)
  • (2, 'Bob', 7000)
  • (3, 'Charlie', 7000)
  • (4, 'Diana', 6000)

What will this query return?

SELECT name FROM Employees WHERE salary = (SELECT MAX(salary) FROM Employees);
Intro to Computing
SELECT name FROM Employees WHERE salary = (SELECT MAX(salary) FROM Employees);
A
Bob
Charlie
B
Alice
Diana
CBob
DCharlie
Attempts:
2 left
💡 Hint

Think about which salary is the highest and which employees have that salary.

🧠 Conceptual
intermediate
1:30remaining
Which SQL clause filters rows after grouping?

After grouping rows with GROUP BY, which SQL clause is used to filter groups based on a condition?

AHAVING
BWHERE
CORDER BY
DFROM
Attempts:
2 left
💡 Hint

Remember, WHERE filters rows before grouping.

trace
advanced
2:30remaining
Trace the output of this SQL query with JOIN

Given two tables:

Students: (id, name)

  • (1, 'Anna')
  • (2, 'Ben')
  • (3, 'Cara')

Scores: (student_id, score)

  • (1, 85)
  • (2, 90)
  • (2, 95)
  • (4, 80)

What is the output of this query?

SELECT Students.name, Scores.score FROM Students LEFT JOIN Scores ON Students.id = Scores.student_id ORDER BY Students.id, Scores.score DESC;
Intro to Computing
SELECT Students.name, Scores.score FROM Students LEFT JOIN Scores ON Students.id = Scores.student_id ORDER BY Students.id, Scores.score DESC;
A
Anna NULL
Ben 90
Ben 95
Cara 80
B
Anna 85
Ben 90
Cara NULL
C
Anna 85
Ben 90
Ben 95
Cara NULL
D
Anna 85
Ben 95
Ben 90
Cara NULL
Attempts:
2 left
💡 Hint

LEFT JOIN keeps all rows from Students even if no matching Scores exist.

identification
advanced
1:30remaining
Identify the error in this SQL query

What error will this query produce?

SELECT name, COUNT(*) FROM Employees;
ATypeError: name column not found
BSyntaxError: Missing GROUP BY clause
CRuntimeError: COUNT(*) cannot be used with other columns
DNo error, query runs successfully
Attempts:
2 left
💡 Hint

When using aggregation functions with other columns, what else is required?

Comparison
expert
3:00remaining
Compare the results of these two queries

Given a table Orders with columns order_id, customer_id, and amount, which statement is true?

Query 1: SELECT customer_id, SUM(amount) FROM Orders GROUP BY customer_id HAVING SUM(amount) > 1000;
Query 2: SELECT customer_id, SUM(amount) FROM Orders WHERE amount > 1000 GROUP BY customer_id;
AQuery 1 filters rows with amount > 1000; Query 2 filters groups with total amount > 1000
BBoth queries return the same results
CQuery 1 filters groups with total amount > 1000; Query 2 filters rows with amount > 1000 before grouping
DQuery 1 will cause a syntax error; Query 2 runs correctly
Attempts:
2 left
💡 Hint

Consider when filtering happens in each query.

Practice

(1/5)
1. What does the SELECT statement do in SQL?
easy
A. It deletes rows from a table.
B. It chooses which columns to show from a table.
C. It creates a new table in the database.
D. It updates values in a table.

Solution

  1. Step 1: Understand the purpose of SELECT

    The SELECT statement is used to specify which columns of data you want to see from a table.
  2. Step 2: Differentiate from other SQL commands

    Commands like DELETE, CREATE, and UPDATE perform different actions such as removing, creating, or changing data, not selecting columns.
  3. Final Answer:

    It chooses which columns to show from a table. -> Option B
  4. Quick Check:

    SELECT = choose columns [OK]
Hint: SELECT picks columns to display, not rows or tables [OK]
Common Mistakes:
  • Confusing SELECT with DELETE or UPDATE
  • Thinking SELECT creates or deletes tables
  • Mixing SELECT with WHERE filtering
2. Which of the following is the correct syntax to select the column name from a table called students?
easy
A. SELECT name FROM students;
B. SELECT FROM students name;
C. FROM students SELECT name;
D. SELECT name students FROM;

Solution

  1. Step 1: Recall SQL SELECT syntax

    The correct order is SELECT [columns] FROM [table]; so the column name comes after SELECT and the table name after FROM.
  2. Step 2: Check each option

    SELECT name FROM students; follows the correct syntax. The other options have incorrect order or missing keywords.
  3. Final Answer:

    SELECT name FROM students; -> Option A
  4. Quick Check:

    SELECT column FROM table [OK]
Hint: Remember: SELECT columns FROM table; [OK]
Common Mistakes:
  • Swapping SELECT and FROM keywords
  • Omitting semicolon at the end
  • Placing table name before SELECT
3. Given the table employees with columns id, name, and salary, what will this query return?
SELECT name FROM employees WHERE salary > 50000;
medium
A. An error because salary comparison is invalid.
B. All employee names with salary less than 50000.
C. All employee names regardless of salary.
D. All employee names with salary greater than 50000.

Solution

  1. Step 1: Understand the WHERE clause

    The WHERE clause filters rows to only those where the salary is greater than 50000.
  2. Step 2: Identify the selected column

    The query selects only the name column from the filtered rows.
  3. Final Answer:

    All employee names with salary greater than 50000. -> Option D
  4. Quick Check:

    WHERE salary > 50000 filters rows [OK]
Hint: WHERE filters rows; SELECT chooses columns [OK]
Common Mistakes:
  • Confusing > with < in WHERE clause
  • Thinking all columns are returned
  • Assuming syntax error due to comparison
4. Identify the error in this SQL query:
SELECT name salary FROM employees;
medium
A. Missing comma between column names.
B. Table name is incorrect.
C. SELECT keyword is misspelled.
D. WHERE clause is missing.

Solution

  1. Step 1: Check column list syntax

    When selecting multiple columns, they must be separated by commas. Here, name salary lacks a comma.
  2. Step 2: Verify other parts

    The table name employees is correct, SELECT is spelled correctly, and WHERE is optional.
  3. Final Answer:

    Missing comma between column names. -> Option A
  4. Quick Check:

    Multiple columns need commas [OK]
Hint: Separate columns with commas in SELECT [OK]
Common Mistakes:
  • Omitting commas between columns
  • Adding unnecessary WHERE clause
  • Misspelling keywords
5. You have a table products with columns product_id, name, and price. You want to find all products priced between 10 and 20 inclusive. Which query correctly does this?
hard
A. SELECT name FROM products WHERE price >= 10 OR price <= 20;
B. SELECT name FROM products WHERE price > 10 OR price < 20;
C. SELECT name FROM products WHERE price BETWEEN 10 AND 20;
D. SELECT name FROM products WHERE price = 10 AND price = 20;

Solution

  1. Step 1: Understand the BETWEEN operator

    BETWEEN checks if a value is within a range inclusive of the boundaries, so price BETWEEN 10 AND 20 means price ≥ 10 and ≤ 20.
  2. Step 2: Compare other options

    SELECT name FROM products WHERE price >= 10 OR price <= 20; uses OR which selects nearly all products; SELECT name FROM products WHERE price > 10 OR price < 20; uses OR which includes prices outside the range; SELECT name FROM products WHERE price = 10 AND price = 20; checks impossible condition price = 10 AND price = 20 simultaneously.
  3. Final Answer:

    SELECT name FROM products WHERE price BETWEEN 10 AND 20; -> Option C
  4. Quick Check:

    BETWEEN includes range boundaries [OK]
Hint: Use BETWEEN for inclusive range filtering [OK]
Common Mistakes:
  • Using OR instead of AND for range
  • Confusing BETWEEN with equality
  • Checking impossible conditions with AND