You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

How-to-code-subqueries.sql 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. -- Exercise 1
  2. SELECT category_name
  3. FROM categories
  4. WHERE category_id IN (SELECT DISTINCT category_id
  5. FROM products)
  6. ORDER BY category_name;
  7. -- Exercise 2
  8. SELECT product_name,
  9. list_price
  10. FROM products
  11. WHERE list_price > (SELECT AVG(list_price)
  12. FROM products)
  13. ORDER BY list_price DESC;
  14. -- Exercise 3
  15. SELECT category_name
  16. FROM categories
  17. WHERE NOT EXISTS (SELECT *
  18. FROM products
  19. WHERE category_id = categories.category_id);
  20. -- Exercise 4
  21. SELECT email_address,
  22. i.order_id,
  23. SUM((i.item_price - i.discount_amount) * quantity) AS 'order_total'
  24. FROM customers c JOIN orders o
  25. ON c.customer_id = o.customer_id
  26. JOIN order_items i
  27. ON o.order_id = i.order_id
  28. GROUP BY email_address, order_id;
  29. -- Exercise 4 Part 2
  30. SELECT email_address,
  31. MAX(order_total)
  32. FROM (SELECT email_address,
  33. i.order_id,
  34. SUM((i.item_price - i.discount_amount) * quantity) AS 'order_total'
  35. FROM customers c JOIN orders o
  36. ON c.customer_id = o.customer_id
  37. JOIN order_items i
  38. ON o.order_id = i.order_id
  39. GROUP BY email_address, order_id) f
  40. GROUP BY email_address;
  41. -- Exercise 5
  42. SELECT product_name,
  43. discount_percent
  44. FROM products
  45. WHERE discount_percent NOT IN (SELECT
  46. discount_percent
  47. FROM products
  48. GROUP BY discount_percent
  49. HAVING COUNT(discount_percent) > 1)
  50. ORDER BY product_name;
  51. -- Exercise 6
  52. SELECT email_address,
  53. order_id,
  54. order_date
  55. FROM customers c JOIN orders o
  56. ON c.customer_id = o.customer_id
  57. WHERE order_date = (SELECT MIN(order_date)
  58. FROM orders
  59. WHERE customer_id = o.customer_id);