Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

How-to-code-summary-queries.sql 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. -- Exercise 1
  2. SELECT
  3. COUNT(*) AS order_count,
  4. SUM(tax_amount)
  5. FROM
  6. orders;
  7. -- Exercise 2
  8. SELECT
  9. category_name,
  10. COUNT(product_id) AS product_count,
  11. MAX(list_price) AS max_price
  12. FROM
  13. categories c JOIN products p
  14. ON c.category_id = p.category_id
  15. GROUP BY
  16. c.category_id
  17. ORDER BY
  18. product_count DESC;
  19. -- Exercise 3
  20. SELECT
  21. email_address,
  22. SUM(item_price * quantity) AS 'total',
  23. SUM(discount_amount * quantity) AS 'total discount'
  24. FROM
  25. customers c
  26. JOIN orders o
  27. ON c.customer_id = o.customer_id
  28. JOIN order_items oi
  29. ON o.order_id = oi.order_id
  30. GROUP BY
  31. email_address
  32. ORDER BY
  33. total DESC;
  34. -- Exercise 4
  35. SELECT
  36. email_address,
  37. COUNT(o.order_id) AS number_orders,
  38. (item_price - discount_amount) * quantity AS total_amount
  39. FROM
  40. customers c JOIN orders o
  41. ON c.customer_id = o.customer_id
  42. JOIN order_items oi
  43. ON o.order_id = oi.order_id
  44. GROUP BY
  45. c.customer_id
  46. HAVING
  47. number_orders > 1
  48. ORDER BY
  49. total_amount DESC;
  50. -- Exercise 5
  51. SELECT
  52. email_address,
  53. COUNT(o.order_id) AS number_orders,
  54. (item_price - discount_amount) * quantity AS total_amount
  55. FROM
  56. customers c JOIN orders o
  57. ON c.customer_id = o.customer_id
  58. JOIN order_items oi
  59. ON o.order_id = oi.order_id
  60. WHERE
  61. item_price > 400
  62. GROUP BY
  63. email_address
  64. HAVING
  65. COUNT(o.order_id) > 1
  66. ORDER BY
  67. total_amount DESC;
  68. -- Exercise 6
  69. SELECT
  70. product_name,
  71. SUM((item_price - discount_amount) * quantity) AS 'product total'
  72. FROM
  73. products p JOIN order_items oi
  74. ON p.product_id = oi.product_id
  75. GROUP BY
  76. product_name WITH ROLLUP;
  77. -- Exercise 7
  78. SELECT
  79. email_address,
  80. COUNT(DISTINCT oi.product_id) AS 'number of products'
  81. FROM
  82. customers c
  83. JOIN orders o
  84. ON c.customer_id = o.customer_id
  85. JOIN order_items oi
  86. ON o.order_id = oi.order_id
  87. GROUP BY
  88. email_address
  89. HAVING
  90. COUNT(DISTINCT oi.product_id) > 1
  91. ORDER BY
  92. email_address;