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

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