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

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