실습은 https://www.w3schools.com/sql/trymysql.asp?filename=trysql_func_mysql_concat
위의 링크에서 진행할 수 있어요.
위 실습 링크에 있는 DB를 기준으로 작성된 문제와 답입니다.
1. 200개 이상 팔린 상품명과 그 수량을 수량 기준 내림차순으로 보여주세요.
결과
답
SELECT od.productID, pr.ProductName, sum(quantity) AS sum
FROM OrderDetails AS od
JOIN Products AS pr ON od.productID = pr.productID
GROUP BY od.productID HAVING sum >= 200
ORDER BY sum DESC;
2. 많이 주문한 순으로 고객 리스트(ID, 고객명)를 구해주세요. (고객별 구매한 물품 총 갯수)
결과
답
SELECT ct.customerID, ct.customerName, sum(od.Quantity) as sum
FROM Customers AS ct
LEFT OUTER JOIN Orders AS ords ON ct.CustomerID = ords.CustomerID
LEFT OUTER JOIN OrderDetails AS od ON ords.OrderID = od.OrderID
group by ct.customerName
order by sum desc;
3. 많은 돈을 지출한 순으로 고객 리스트를 구해주세요.
결과
답
SELECT ct.CustomerID, ct.ContactName, sum(od.Quantity * pr.Price) as sum
FROM Customers AS ct
LEFT JOIN Orders AS ords ON ct.customerID = ords.customerID
LEFT JOIN OrderDetails AS od ON od.OrderID = ords.OrderID
LEFT JOIN Products AS pr ON pr.ProductID = od.ProductID
group by ct.CustomerID
order by sum desc;
댓글