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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. -- Exercise 1
  2. SELECT COUNT(order_id),
  3. SUM(tax_amount)
  4. FROM orders;
  5. -- Exercise 2
  6. SELECT 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 c.email_address,
  15. SUM(item_price) * quantity,
  16. SUM(discount_amount) * quantity
  17. FROM orders o JOIN order_items i
  18. ON o.order_id = i.order_id
  19. JOIN customers c
  20. ON o.customer_id = c.customer_id
  21. GROUP BY c.customer_id
  22. ORDER BY item_price DESC;
  23. -- Exercise 4
  24. SELECT c.email_address,
  25. COUNT(i.order_id),
  26. SUM(item_price - discount_amount) * quantity AS 'total_amount'
  27. FROM orders o JOIN order_items i
  28. ON i.order_id = o.order_id
  29. JOIN customers c
  30. ON o.customer_id = c.customer_id
  31. GROUP BY email_address
  32. HAVING COUNT(i.order_id) > 1
  33. ORDER BY SUM(item_price - discount_amount) * COUNT(i.order_id) DESC;
  34. -- Exercise 5
  35. SELECT c.email_address,
  36. COUNT(i.order_id),
  37. SUM(item_price - discount_amount) * quantity AS 'total_amount'
  38. FROM orders o JOIN order_items i
  39. ON i.order_id = o.order_id
  40. JOIN customers c
  41. ON o.customer_id = c.customer_id
  42. WHERE i.item_price > 400
  43. GROUP BY email_address
  44. HAVING COUNT(i.order_id) > 1
  45. ORDER BY SUM(item_price - discount_amount) * COUNT(i.order_id) DESC;
  46. -- Exercise 6
  47. SELECT product_name,
  48. SUM(item_price - discount_amount) * quantity AS 'total_amount'
  49. FROM products p JOIN order_items i
  50. ON p.product_id = i.product_id
  51. GROUP BY product_name WITH ROLLUP;
  52. -- Exercise 7
  53. SELECT email_address,
  54. COUNT(product_id) AS 'distinct_products'
  55. FROM customers c JOIN orders o
  56. ON c.customer_id = o.customer_id
  57. JOIN order_items i
  58. ON o.order_id = i.order_id
  59. GROUP BY email_address
  60. HAVING COUNT(o.order_id) > 1;