FROM ordering_xxx O2, ordering_xxx O3, supplier_xxx SS
WHERE O2.s = O3.s
AND O2.s = SS.s_id
AND SS.address = '台北'
AND O2.p = '10'
AND O3.p = '20';
全部共 54則留言
05-09 10:22:
-- 31. 列出 廠商之訂購金額加總大於 80,000者。
-- 訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost
SELECT s ,SUM(qty*cost) CC
FROM ordering_012 LILI JOIN product_012 POP
ON LILI.p = POP.p_id
GROUP BY LILI.s
HAVING CC > 80000
05-09 10:24:
-- 32. 下列SQL可完成什麼? 請在答案紙上寫下答案。
SELECT ordering_012.s, sum(qty*cost) AS total FROM ordering_012, product_012
WHERE ordering_012.p=product_012.p_id
GROUP BY ordering_012.s
ORDER BY Total DESC;
05-09 10:25:
-- 33. 列出 supplier_xxx 資料表中 有訂購 30 號產品者(P=30)的 廠商編號 (s_id), 廠商名稱 (s_name), 與 地址 (address)
-- 請在答案紙上寫下結果
SELECT *
FROM supplier_012
WHERE s_id IN
(SELECT DISTINCT s FROM ordering_012);
05-09 10:27:
-- 34. 列出訂購總金額加總為後五名者 (最少的5家) 的S,P,qty,cost,與訂購總金額加總
-- 請在答案紙上寫下前三筆的結果
SELECT *, SUM(OO.qty*PP.cost) AS tot
FROM ordering_012 OO JOIN product_012 PP
ON OO.p = PP.p_id
GROUP BY OO.s
ORDER BY tot;
05-09 10:28:
-- 35. 列出 未有訂購產品 的廠商編號 (s_id)、名稱(s_name),與地址 (address)。
-- 請在答案紙上寫下前三筆的結果
SELECT *
FROM supplier_012
WHERE s_id NOT IN
(SELECT DISTINCT s FROM ordering_012);
05-09 10:31:
-- 36. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)、品名(name),價格 (cost),和數量(qty),
-- 以及各項商品的訂購金額 (qty*cost)。
-- 請在答案紙上寫下前三筆的結果
SELECT *
FROM supplier_012 SS JOIN
(SELECT *, OO.qty*PP.cost AS total
FROM ordering_012 OO JOIN product_012 PP ON OO.p = PP.p_id) TT
ON SS.s_id = TT.s;
05-09 10:33:
-- 37. 列出 廠商之訂購金額加總 (訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost) 小於 250,000者。
-- >> 寫下 其中最多的一家廠商、與其訂購金額加總
SELECT s, SUM(qty*cost) total
FROM ordering_012 OO
JOIN product_012 PP ON OO.p=PP.p_id
GROUP BY s HAVING total < 250000;
05-09 10:35:
-- 38. 出訂購總金額最多的一項商品
-- >> 寫下它的 商品編號、與品名
SELECT p, name, SUM(qty*cost) total
FROM product_012 JOIN ordering_012 ON
product_012.p_id=ordering_012.p
GROUP BY p
ORDER BY total DESC LIMIT 1;
05-09 10:36:
-- 39. 列出有訂購產品的廠商中,但並沒訂購 '10' 商品的 公司編號 (s_id)、名稱,和地址
-- >> 寫下它的 公司編號 即可
SELECT s_id
FROM supplier_012
WHERE s_id NOT IN
(SELECT DISTINCT s FROM ordering_012 WHERE p=10);
05-09 10:39:
-- 40. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)> '32' 者、品名(name),價格 (cost),和數量(qty),
-- 以及各項商品的訂購金額 (qty*cost)。
-- >> 寫下它的 公司名稱 即可
SELECT s_id, SS.s_name, address
FROM supplier_012 SS WHERE s_id IN
(SELECT DISTINCT s FROM ordering_012 OO WHERE OO.p > 32);
31. 列出 廠1.商之訂購金額加總大於 80,000者。 -- 訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost SELECT s ,SUM(qty*cost) CC FROM ordering_017 LILI JOIN product_017 POP ON LILI.p = POP.p_id GROUP BY LILI.s HAVING CC > 80000
05-09 11:28:
32.下列SQL可完成什麼? 請在答案紙上寫下答案。 SELECT ordering_017.s, sum(qty*cost) AS total FROM ordering_017, product_017 WHERE ordering_017.p=product_017.p_id GROUP BY ordering_017.s ORDER BY Total DESC;
05-09 11:29:
33.列出 supplier_xxx 資料表中 有訂購 30 號產品者(P=30)的 廠商編號 (s_id), 廠商名稱 (s_name), 與 地址 (address) -- 請在答案紙上寫下結果 SELECT * FROM supplier_017 WHERE s_id IN (SELECT DISTINCT s FROM ordering_017);
05-09 11:30:
34.列出訂購總金額加總為後五名者 (最少的5家) 的S,P,qty,cost,與訂購總金額加總 -- 請在答案紙上寫下前三筆的結果 SELECT *, SUM(OO.qty*PP.cost) AS tot FROM ordering_017 OO JOIN product_017 PP ON OO.p = PP.p_id GROUP BY OO.s ORDER BY tot;
05-09 11:30:
35.列出 未有訂購產品 的廠商編號 (s_id)、名稱(s_name),與地址 (address)。 -- 請在答案紙上寫下前三筆的結果 SELECT * FROM supplier_017 WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_017);
05-09 11:33:
36.列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 -- 請在答案紙上寫下前三筆的結果 SELECT * FROM supplier_017 SS JOIN (SELECT *, OO.qty*PP.cost AS total FROM ordering_017 OO JOIN product_017 PP ON OO.p = PP.p_id) TT ON SS.s_id = TT.s;
05-09 11:34:
37.列出 廠商之訂購金額加總 (訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost) 小於 250,000者。 -- >> 寫下 其中最多的一家廠商、與其訂購金額加總 SELECT s, SUM(qty*cost) total FROM ordering_017 OO JOIN product_017 PP ON OO.p=PP.p_id GROUP BY s HAVING total < 250000;
05-09 11:34:
38.出訂購總金額最多的一項商品 -- >> 寫下它的 商品編號、與品名 SELECT p, name, SUM(qty*cost) total FROM product_017 JOIN ordering_017 ON product_017.p_id=ordering_017.p GROUP BY p ORDER BY total DESC LIMIT 1;
05-09 11:34:
39.列出有訂購產品的廠商中,但並沒訂購 '10' 商品的 公司編號 (s_id)、名稱,和地址 -- >> 寫下它的 公司編號 即可 SELECT s_id FROM supplier_017 WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_017 WHERE p=10);
05-09 11:35:
40.列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)> '32' 者、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 -- >> 寫下它的 公司名稱 即可 SELECT s_id, SS.s_name, address FROM supplier_017 SS WHERE s_id IN (SELECT DISTINCT s FROM ordering_017 OO WHERE OO.p > 32);
-- 44. 請將您的 資料匯入資料表
-- >> 請在答案紙上寫下 您的 SQL 程式
load data local infile "C:/Users/user/Downloads/005" into table product_012 fields terminated by ',';
05-30 10:46:
-- 51. 子查詢 (Subqueries)
-- 列出 product_012 中最高價格 的 所有欄位
SELECT *
FROM product_012 PP
WHERE PP.cost =
(SELECT MAX(PP.cost)
FROM product_012 PP);
05-30 10:46:
-- 52. 子查詢 (Subqueries)
-- include the subquery as an inline "table" in the FROM clause
-- 在 FROM 中,將子查詢 做為 行內的 table
-- 列出 product_012 中最高價格 的 所有欄位
SELECT *
FROM product_012 PP,
(SELECT MAX(PP.cost) MAX_COST FROM product_012 PP) MM
WHERE PP.cost = MM.MAX_COST;
05-30 10:46:
-- 53. 子查詢 (Subqueries)
-- 列出 未訂購商品的 廠商 的 所有欄位
SELECT *
FROM supplier_012 SS
WHERE SS.s_id NOT IN
(SELECT DISTINCT s FROM ordering_012);
05-30 10:46:
-- 54. 子查詢 (Subqueries)
-- 列出 未訂購商品的 廠商 的 所有欄位
-- 更有效率的做法
SELECT *
FROM supplier_012 SS
WHERE NOT EXISTS
(SELECT NULL
FROM ordering_012 OO
WHERE SS.s_id = OO.s);
05-30 10:47:
-- 55. 自我 結合 (Self-Join)
-- 列出 product 中 廠商 同時訂購 '10' 和 '20' 的 所有欄位
-- 更有效率的做法
SELECT *
FROM ordering_012 O2, ordering_012 O3
WHERE O2.s = O3.s
AND O2.p = '10'
AND O3.p = '20';
05-30 10:47:
-- 56. 自我 結合 (Self-Join)
-- 列出 product 中 廠商 同時訂購 '10' 和 '20' 且廠商地址在 '台北' 的 所有欄位
-- 更有效率的做法
SELECT *, SS.s_name, SS.address
FROM ordering_012 O2, ordering_012 O3, supplier_012 SS
WHERE O2.s = O3.s
AND O2.s = SS.s_id
AND SS.address = '台北'
AND O2.p = '10'
AND O3.p = '20';
05-30 11:07:
31. 列出 廠1.商之訂購金額加總大於 80,000者。 -- 訂購金額 為 table ordering_018 之訂購量 qty * table product_018 的 價格 cost SELECT s ,SUM(qty*cost) CC FROM ordering_018 LILI JOIN product_018 POP ON LILI.p = POP.p_id GROUP BY LILI.s HAVING CC > 80000
05-30 11:07:
31. 列出 廠1.商之訂購金額加總大於 80,000者。 -- 訂購金額 為 table ordering_018 之訂購量 qty * table product_018 的 價格 cost SELECT s ,SUM(qty*cost) CC FROM ordering_018 LILI JOIN product_018 POP ON LILI.p = POP.p_id GROUP BY LILI.s HAVING CC > 80000
05-30 11:42:
-- 31. 列出 廠商之訂購金額加總大於 80,000者。 -- 訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost
SELECT s ,SUM(qty*cost) CC FROM ordering_014 LILI
JOIN product_014 POP ON LILI.p = POP.p_id
GROUP BY LILI.s HAVING CC > 80000
05-30 11:45:
-- 32. 下列SQL可完成什麼? 請在答案紙上寫下答案。
SELECT ordering_014.s, sum(qty*cost) AS total FROM ordering_014, product_014 WHERE ordering_014.p=product_014.p_id GROUP BY ordering_014.s ORDER BY Total DESC;
05-30 11:47:
-- 33. 列出 supplier_xxx 資料表中 有訂購 30 號產品者(P=30)的 廠商編號 (s_id), 廠商名稱 (s_name), 與 地址 (address) -- 請在答案紙上寫下結果
SELECT * FROM supplier_014 WHERE s_id
IN (SELECT DISTINCT s FROM ordering_014);
05-30 11:48:
51. 子查詢 (Subqueries) -- 列出 product_017 中最高價格 的 所有欄位 SELECT * FROM product_017 PP WHERE PP.cost = (SELECT MAX(PP.cost) FROM product_017 PP);
05-30 11:48:
-- 34. 列出訂購總金額加總為後五名者 (最少的5家) 的S,P,qty,cost,與訂購總金額加總 -- 請在答案紙上寫下前三筆的結果
SELECT *, SUM(OO.qty*PP.cost) AS tot FROM ordering_014 OO
JOIN product_014 PP ON OO.p = PP.p_id
GROUP BY OO.s ORDER BY tot;
05-30 11:49:
52. 子查詢 (Subqueries) -- include the subquery as an inline "table" in the FROM clause -- 在 FROM 中,將子查詢 做為 行內的 table -- 列出 product_017 中最高價格 的 所有欄位 SELECT * FROM product_017 PP, (SELECT MAX(PP.cost) MAX_COST FROM product_017 PP) MM WHERE PP.cost = MM.MAX_COST;
05-30 11:50:
53. 子查詢 (Subqueries) -- 列出 未訂購商品的 廠商 的 所有欄位 SELECT * FROM supplier_017 SS WHERE SS.s_id NOT IN (SELECT DISTINCT s FROM ordering_017);
05-30 11:51:
4. 子查詢 (Subqueries) -- 列出 未訂購商品的 廠商 的 所有欄位 -- 更有效率的做法 SELECT * FROM supplier_017 SS WHERE NOT EXISTS (SELECT NULL FROM ordering_017 OO WHERE SS.s_id = OO.s);
05-30 11:52:
55. 自我 結合 (Self-Join) -- 列出 product 中 廠商 同時訂購 '10' 和 '20' 的 所有欄位 -- 更有效率的做法 SELECT * FROM ordering_017 O2, ordering_017 O3 WHERE O2.s = O3.s AND O2.p = '10' AND O3.p = '20';
05-30 11:52:
-- 35. 列出 未有訂購產品 的廠商編號 (s_id)、名稱(s_name),與地址 (address)。 -- 請在答案紙上寫下前三筆的結果
SELECT * FROM supplier_014
WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_014);
05-30 11:53:
56. 自我 結合 (Self-Join) -- 列出 product 中 廠商 同時訂購 '10' 和 '20' 且廠商地址在 '台北' 的 所有欄位 -- 更有效率的做法 SELECT *, SS.s_name, SS.address FROM ordering_017 O2, ordering_017 O3, supplier_017 SS WHERE O2.s = O3.s AND O2.s = SS.s_id AND SS.address = '台北' AND O2.p = '10' AND O3.p = '20';
05-30 11:53:
-- 36. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 -- 請在答案紙上寫下前三筆的結果
SELECT * FROM supplier_014 SS
JOIN (SELECT *, OO.qty*PP.cost AS total FROM ordering_014 OO JOIN product_014 PP ON OO.p = PP.p_id) TT ON SS.s_id = TT.s;
05-30 11:54:
-- 37. 列出 廠商之訂購金額加總 (訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost) 小於 250,000者。 -- >> 寫下 其中最多的一家廠商、與其訂購金額加總
SELECT s, SUM(qty*cost) total FROM ordering_014 OO
JOIN product_014 PP ON OO.p=PP.p_id GROUP BY s HAVING total < 250000;
05-30 11:55:
-- 38. 出訂購總金額最多的一項商品 -- >> 寫下它的 商品編號、與品名
SELECT p, name, SUM(qty*cost) total FROM product_014
JOIN ordering_014 ON product_014.p_id=ordering_014.p
GROUP BY p ORDER BY total DESC LIMIT 1;
05-30 11:57:
-- 39. 列出有訂購產品的廠商中,但並沒訂購 '10' 商品的 公司編號 (s_id)、名稱,和地址 -- >> 寫下它的 公司編號 即可
SELECT s_id FROM supplier_014 WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_014 WHERE p=10);
05-30 11:59:
-- 40. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)> '32' 者、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 -- >> 寫下它的 公司名稱 即可
SELECT s_id, SS.s_name, address FROM supplier_014 SS WHERE s_id
IN (SELECT DISTINCT s FROM ordering_014 OO WHERE OO.p > 32);
05-30 11:59:
33.列出 supplier_018 資料表中 有訂購 30 號產品者(P=30)的 廠商編號 (s_id), 廠商名稱 (s_name), 與 地址 (address) -- 請在答案紙上寫下結果 SELECT * FROM supplier_018 WHERE s_id IN (SELECT DISTINCT s FROM ordering_018);
-- 31. 列出 廠商之訂購金額加總大於 80,000者。
-- 訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost
SELECT B.s AS '訂購商', SUM(F.cost*B.qty) AS total
FROM fruit_xxx F
INNER JOIN booking_xxx B
ON F.p_id=B.p
GROUP BY B.s;
03-04 18:01:
-- 31. 列出 廠商之訂購金額加總大於 80,000者。
-- 訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost
SELECT B.s AS '訂購商', SUM(F.cost*B.qty) AS total
FROM fruit_xxx F
INNER JOIN booking_xxx B
ON F.p_id=B.p
GROUP BY B.s
HAVING total > 80000;
05-13 17:39:
https://www.youtube.com/watch?v=MvcDM2nLdzI
05-13 17:42:
https://www.youtube.com/watch?v=BHwzDmr6d7s Secret To Optimizing SQL Queries - Understand The SQL Execution Order
05-13 17:46:
SQL Beginner to Advanced in One Hour | CareerFoundry Webinar
https://www.youtube.com/watch?v=oreAsJTNcsA