Browse Source

made exercises

master
bartvanroy 2 years ago
parent
commit
07bfb79d4d
1 changed files with 30 additions and 37 deletions
  1. 30
    37
      How-to-code-summary-queries.sql

+ 30
- 37
How-to-code-summary-queries.sql View File

@@ -1,16 +1,14 @@
-- Exercise 1

SELECT
COUNT(order_id),
SUM(tax_amount)
SELECT COUNT(order_id),
SUM(tax_amount)
FROM orders;

-- Exercise 2

SELECT
category_name,
COUNT(product_id) AS count,
MAX(list_price) AS max_price
SELECT category_name,
COUNT(product_id) AS count,
MAX(list_price) AS max_price
FROM categories c JOIN products p
ON c.category_id = p.category_id
GROUP BY category_name
@@ -18,41 +16,38 @@

-- Exercise 3

SELECT
c.email_address,
SUM(item_price) * quantity,
SUM(discount_amount) * quantity
SELECT c.email_address,
SUM(item_price) * quantity,
SUM(discount_amount) * quantity
FROM orders o JOIN order_items i
ON o.order_id = i.order_id
JOIN customers c
ON o.customer_id = c.customer_id
ON o.order_id = i.order_id
JOIN customers c
ON o.customer_id = c.customer_id
GROUP BY c.customer_id
ORDER BY item_price DESC;

-- Exercise 4

SELECT
c.email_address,
COUNT(i.order_id),
SUM(item_price - discount_amount) * quantity AS 'total_amount'
SELECT c.email_address,
COUNT(i.order_id),
SUM(item_price - discount_amount) * quantity AS 'total_amount'
FROM orders o JOIN order_items i
ON i.order_id = o.order_id
JOIN customers c
ON o.customer_id = c.customer_id
ON i.order_id = o.order_id
JOIN customers c
ON o.customer_id = c.customer_id
GROUP BY email_address
HAVING COUNT(i.order_id) > 1
ORDER BY SUM(item_price - discount_amount) * COUNT(i.order_id) DESC;

-- Exercise 5

SELECT
c.email_address,
COUNT(i.order_id),
SUM(item_price - discount_amount) * quantity AS 'total_amount'
SELECT c.email_address,
COUNT(i.order_id),
SUM(item_price - discount_amount) * quantity AS 'total_amount'
FROM orders o JOIN order_items i
ON i.order_id = o.order_id
JOIN customers c
ON o.customer_id = c.customer_id
ON i.order_id = o.order_id
JOIN customers c
ON o.customer_id = c.customer_id
WHERE i.item_price > 400
GROUP BY email_address
HAVING COUNT(i.order_id) > 1
@@ -60,22 +55,20 @@

-- Exercise 6

SELECT
product_name,
SUM(item_price - discount_amount) * quantity AS 'total_amount'
SELECT product_name,
SUM(item_price - discount_amount) * quantity AS 'total_amount'
FROM products p JOIN order_items i
ON p.product_id = i.product_id
ON p.product_id = i.product_id
GROUP BY product_name WITH ROLLUP;

-- Exercise 7

SELECT
email_address,
COUNT(product_id) AS 'distinct_products'
SELECT email_address,
COUNT(product_id) AS 'distinct_products'
FROM customers c JOIN orders o
ON c.customer_id = o.customer_id
ON c.customer_id = o.customer_id
JOIN order_items i
ON o.order_id = i.order_id
ON o.order_id = i.order_id
GROUP BY email_address
HAVING COUNT(o.order_id) > 1;


Loading…
Cancel
Save