Bird
0
0

Given tables:

hard📝 Application Q9 of 15
SQL - Table Relationships
Given tables:
Orders(id, customer_id, amount)
Customers(id, name)
Write a query to find customers who spent more than 1000 in total orders.
ASELECT Customers.name FROM Customers LEFT JOIN Orders ON Customers.id = Orders.customer_id WHERE Orders.amount > 1000;
BSELECT Customers.name FROM Customers JOIN Orders ON Customers.id = Orders.customer_id WHERE SUM(Orders.amount) > 1000;
CSELECT Customers.name FROM Customers JOIN Orders ON Customers.id = Orders.customer_id GROUP BY Customers.name HAVING SUM(Orders.amount) > 1000;
DSELECT Customers.name FROM Orders JOIN Customers ON Orders.customer_id = Customers.id WHERE Orders.amount > 1000;
Step-by-Step Solution
Solution:
  1. Step 1: Understand aggregation need

    We must sum order amounts per customer and filter totals over 1000.
  2. Step 2: Use GROUP BY and HAVING

    GROUP BY Customers.name groups orders; HAVING filters sums.
  3. Final Answer:

    SELECT Customers.name FROM Customers JOIN Orders ON Customers.id = Orders.customer_id GROUP BY Customers.name HAVING SUM(Orders.amount) > 1000; -> Option C
  4. Quick Check:

    Use HAVING with GROUP BY for aggregated filters [OK]
Quick Trick: Use HAVING to filter grouped aggregates [OK]
Common Mistakes:
MISTAKES
  • Using WHERE with aggregate functions
  • Missing GROUP BY clause

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More SQL Quizzes