본문 바로가기
Study/SQL

[MYSQL] 우테코 레벨1 SQL 미션

by 검프 2021. 4. 4.

실습은 https://www.w3schools.com/sql/trymysql.asp?filename=trysql_func_mysql_concat

위의 링크에서 진행할 수 있어요.

위 실습 링크에 있는 DB를 기준으로 작성된 문제와 답입니다.

 

1. 200개 이상 팔린 상품명과 그 수량을 수량 기준 내림차순으로 보여주세요.

결과

https://user-images.githubusercontent.com/48986787/113502058-af955600-9564-11eb-8338-3e9b66e93b64.png

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, 고객명)를 구해주세요. (고객별 구매한 물품 총 갯수)

결과

https://user-images.githubusercontent.com/48986787/113502082-d6538c80-9564-11eb-8e94-b2aca6927204.png

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. 많은 돈을 지출한 순으로 고객 리스트를 구해주세요.

결과

https://user-images.githubusercontent.com/48986787/113531789-a2c83f00-9604-11eb-9de7-7c5f787a64bf.png

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;

댓글