SELECT
oc.CustomerName,
SUM(p.Price) 'TotalAmount',
SUM(oc.Quantity) 'OrderCount'
FROM
new_schema.products p
INNER JOIN
(SELECT
o.CustomerID,
Quantity,
CustomerName,
Country,
OrderID,
ProductID,
OrderDate AS 'CC'
FROM
new_schema.orders o
JOIN new_schema.customers c ON c.CustomerID = o.CustomerID) oc ON p.ProductID = oc.ProductID
GROUP BY CustomerName
ORDER BY CustomerName;
SELECT
c.CustomerName,
SUM(p.Price * o.Quantity) AS TotalAmount,
COUNT(o.OrderID) AS OrderCount
FROM
Customers c
JOIN
Orders o ON c.CustomerID = o.CustomerID
JOIN
Products p ON o.ProductID = p.ProductID
GROUP BY
c.CustomerName;
์ค์ฒฉ ์กฐ์ธ์ผ๋ก ๋ฌถ์ ์๋ ์๋จ ๊ฑธ ์ฒ์ ์์๊ณ , ๋ฌธ์ ์ ๋ชป ๋ดใ .ใ ๋ฐ์ฑํ์..
SELECT
po.Category, po.ProductName AS 'Top_Product', T as 'TotalSold'
FROM
(SELECT
Category, ProductName, SUM(Quantity) AS 'T'
FROM
new_schema.products p
JOIN new_schema.orders o ON p.ProductID = o.ProductID
GROUP BY 1 , 2) po
WHERE
T = (SELECT
MAX(T)
FROM
(SELECT
Category, ProductName, SUM(Quantity) AS 'T'
FROM
new_schema.products p
JOIN new_schema.orders o ON p.ProductID = o.ProductID
GROUP BY 1 , 2) s);
SELECT
p.Category,
p.ProductName AS Top_Product,
SUM(o.Quantity) AS TotalSold
FROM
Products p
JOIN
Orders o ON p.ProductID = o.ProductID
GROUP BY
p.Category, p.ProductName
HAVING
SUM(o.Quantity) = (
SELECT
MAX(SumQuantity)
FROM
(SELECT
p2.Category,
SUM(o2.Quantity) AS SumQuantity
FROM
Products p2
JOIN
Orders o2 ON p2.ProductID = o2.ProductID
GROUP BY
p2.Category, p2.ProductID) AS Subquery
WHERE
Subquery.Category = p.Category
);
๊ทธ๋ฃน์ max๊ฐ ์ฐพ๋ ๋ฌธ์ ๋ฅผ ์ฌ๋ฌ๋ฒ ํ๋๋ฐ๋ ๋งค๋ฒ ์ด๋ ต๋ค.
์ ์ฝ์ฌํญ:
- ๋ ์ฟผ๋ฆฌ ๋ชจ๋ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ฃผ์ธ์.
- ์๋ธ์ฟผ๋ฆฌ๋ฅผ ํตํด ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ต์ข ์ฟผ๋ฆฌ์ ๋ฐ์ํด์ผ ํฉ๋๋ค.
SELECT
e.Name, zz.Department, zz.S AS 'Salary'
FROM
(SELECT
Department, MAX(Salary) AS 'S'
FROM
new_schema.employees
GROUP BY Department) zz
LEFT JOIN
new_schema.employees e ON zz.S = e.Salary;
SELECT
e.Name,
e.Department,
e.Salary
FROM
Employees e
WHERE
e.Salary = (
SELECT
MAX(Salary)
FROM
Employees e2
WHERE
e2.Department = e.Department
);
์ ๋ต์์ ์ฃผ๋ก where์ ๋ก ๊ทธ๋ฃนํ ํด์ ์ต๋๊ฐ์ ๋ฝ๋๋ฐ, ํจ์ฌ ๊ฐํธํ๊ณ ๊ฐ๋
์ฑ์ด ์ข๋ค.
๋๋ ๋ฌธ์ ์ ๋ฐ๋ผ ํ์ค์ฉ ์ฝ๋๋ฅผ ์ง์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ธ๋ค.
SELECT
e.Name, h.ProjectName, h.Budget
FROM
new_schema.employees e
JOIN
(SELECT
ep.EmployeeID, ep.ProjectID, p.ProjectName, p.Budget
FROM
new_schema.employeeprojects ep
JOIN new_schema.Projects p ON ep.ProjectID = p.ProjectID) h ON e.EmployeeID = h.EmployeeID
WHERE
h.Budget >= 10000;
SELECT
e.Name,
p.ProjectName,
p.Budget
FROM
Employees e
JOIN
EmployeeProjects ep ON e.EmployeeID = ep.EmployeeID
JOIN
Projects p ON ep.ProjectID = p.ProjectID
WHERE
p.Budget >= 10000;
์ค์ฒฉ์กฐ์ธ์ ์ฐ๋ฉด 3ํ ์ด๋ธ์ ๊ฐํธํ๊ฒ ์ฐ๊ฒฐํ ์ ์์ด ์ฝ๋๊ฐ ๊ฐํธํด์ง๋ค.
6-2)๋ฌธ์ ํธ๋ ๋ฐ ์๊ฐ์ด ๋๋ฌด ๊ฑธ๋ ธ๋ค. ํ ์ด๋ธ์ ์ค๊ฐ๊น์ง ๋ฝ๋ ๊ฑด ์์ํ๋๋ฐ, ๊ทธ ๋ค์ ์ต๋๊ฐ์ ๊ฒ์ํ๋ ์ฝ๋๋ฅผ ์ง๋ ๊ฒ ๋๋ฌด ์ด๋ ค์ ๋ค. ์ผ๋จ ์๊ฐ๋๋ ๋๋ก ๋๊ฐ์ ํ ์ด๋ธ์ ๋ ๋ฒ ์จ์ ํ์์ง๋ง, ์ข ๋ ํจ์จ์ ์ธ ์ฝ๋๊ฐ ์์ง ์์๊น? ์ ๋ต์์๋ ๋ ๋ฒ ์ผ์ผ๋, ์์ง ๋ด๊ฐ ์ด๊ฒ๊น์ง ์๊ฐํ ๋จ๊ณ๋ ์๋ ๊ฒ ๊ฐ๋ค.