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-summary-queries.sql 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. -- Exercise 1
  2. SELECT
  3. COUNT(order_id),
  4. SUM(tax_amount)
  5. FROM orders;
  6. -- Exercise 2
  7. SELECT
  8. category_name,
  9. COUNT(product_id) AS count,
  10. MAX(list_price) AS max_price
  11. FROM categories c JOIN products p
  12. ON c.category_id = p.category_id
  13. GROUP BY category_name
  14. ORDER BY category_name DESC;
  15. -- Exercise 3
  16. SELECT
  17. c.email_address,
  18. SUM(item_price) * quantity,
  19. SUM(discount_amount) * quantity
  20. FROM orders o JOIN order_items i
  21. ON o.order_id = i.order_id
  22. JOIN customers c
  23. ON o.customer_id = c.customer_id
  24. GROUP BY c.customer_id
  25. ORDER BY item_price DESC;
  26. -- Exercise 4
  27. SELECT
  28. c.email_address,
  29. COUNT(i.order_id),
  30. SUM(item_price - discount_amount) * quantity AS 'total_amount'
  31. FROM orders o JOIN order_items i
  32. ON i.order_id = o.order_id
  33. JOIN customers c
  34. ON o.customer_id = c.customer_id
  35. GROUP BY email_address
  36. HAVING COUNT(i.order_id) > 1
  37. ORDER BY SUM(item_price - discount_amount) * COUNT(i.order_id) DESC;
  38. -- Exercise 5
  39. SELECT
  40. c.email_address,
  41. COUNT(i.order_id),
  42. SUM(item_price - discount_amount) * quantity AS 'total_amount'
  43. FROM orders o JOIN order_items i
  44. ON i.order_id = o.order_id
  45. JOIN customers c
  46. ON o.customer_id = c.customer_id
  47. WHERE i.item_price > 400
  48. GROUP BY email_address
  49. HAVING COUNT(i.order_id) > 1
  50. ORDER BY SUM(item_price - discount_amount) * COUNT(i.order_id) DESC;
  51. -- Exercise 6
  52. SELECT
  53. product_name,
  54. SUM(item_price - discount_amount) * quantity AS 'total_amount'
  55. FROM products p JOIN order_items i
  56. ON p.product_id = i.product_id
  57. GROUP BY product_name WITH ROLLUP;
  58. -- Exercise 7
  59. SELECT
  60. email_address,
  61. COUNT(product_id) AS 'distinct_products'
  62. FROM customers c JOIN orders o
  63. ON c.customer_id = o.customer_id
  64. JOIN order_items i
  65. ON o.order_id = i.order_id
  66. GROUP BY email_address
  67. HAVING COUNT(o.order_id) > 1;