Browse Source

doc: How to code subqueries

master
Ramdan Katakpawou 2 years ago
parent
commit
8828c335bd
2 changed files with 151 additions and 4 deletions
  1. 110
    0
      How_to_code_subqueries.sql
  2. 41
    4
      Solution Exercises.sql

+ 110
- 0
How_to_code_subqueries.sql View File

@@ -0,0 +1,110 @@
/*1*/
SELECT
DISTINCT category_name
FROM
categories c
WHERE
category_id
IN (select product_id FROM products)
ORDER BY
category_name
LIMIT 3;

/*2*/
SELECT
product_name,
list_price
FROM
products

GROUP BY
product_name
HAVING
AVG(list_price) > (SELECT AVG(list_price) FROM products)
ORDER BY list_price DESC;

/*3*/
SELECT
category_name
FROM
categories c
WHERE NOT exists
(SELECT category_name, category_id
FROM products p
WHERE c.category_id= p.category_id);

/*4 part 1*/ /*kan het dat in bedrag anders is*/
SELECT
email_address,
o.order_id,
SUM(item_price - discount_amount) * quantity AS 'order_total'
FROM
customers c
JOIN
orders o
USING
(customer_id)
JOIN
order_items oi
USING
(order_id)
GROUP BY
email_address,
o.order_id;
/*4 part 2*/ /*fout*/
SELECT
email_address,
MAX(item_price)
FROM
(SELECT
email_address,
o.order_id,
SUM(item_price - discount_amount) * quantity AS 'order_total'
FROM
customers c
JOIN
orders o
USING
(customer_id)
JOIN
order_items oi
USING
(order_id)
GROUP BY
email_address,
o.order_id) v
JOIN order_items
using (order_id);
/*5*/
SELECT
p1.product_name,
p1.discount_percent
FROM
products p1
WHERE
p1.discount_percent NOT IN
(SELECT
p2.discount_Percent
FROM
Products p2
WHERE
p1.product_name <> p2.product_name)
ORDER BY product_name;

/*6*/ /*fout*/
SELECT
email_address,
order_id,
order_date
FROM
customers c
JOIN
orders o
ON
c.customer_id = o.customer_id
WHERE
(SELECT MIN(ord.order_date) FROM orders ord
JOIN customers c1 ON ord.customer_id = c1.customer_id
GROUP BY c1.customer_id);

+ 41
- 4
Solution Exercises.sql View File

@@ -36,12 +36,12 @@ SELECT
product_name,
list_price,
discount_percent,
ROUND((list_price*(discount_percent/100)),2) AS discount_amount,
ROUND(list_price +(list_price*(discount_percent/100)),2) AS discount_price
ROUND((list_price*discount_percent/100,2) AS discount_amount,
ROUND(list_price - list_price*discount_percent/100,2)AS discount_price
FROM
products
ORDER BY
discount_price DESC
ROUND(list_price -(list_price*(discount_percent/100)),2 DESC
LIMIT 5;

/*5*/
@@ -208,6 +208,44 @@ WHERE
ORDER BY
order_date;
/* HOW TO CODE SUMMARY QUERRIES*/

/*1*/
SELECT
count(*) AS count_number_of_orders,
SUM(tax_amount) AS sum_tax_amounts
FROM
orders;

/*2*/
SELECT
category_name,
COUNT(*) AS count_of_the_products,
MAX(list_price)
FROM
products p
JOIN
categories c
ON
p.category_id = c.category_id
GROUP BY
category_name
ORDER BY COUNT(*) DESC;

/*3*/
SELECT
email_adress
SELECT category_name FROM categories;




@@ -219,4 +257,3 @@ ORDER BY



Loading…
Cancel
Save