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.4KB

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