PO로로/오늘도 SQL

[오늘도 SQL] 눈물과 고통의 속성과외

우지이 2022. 11. 1. 21:59
반응형
-- 주문 상품 가격이 1,000원인 것의 개수를 가져오세요
SELECT COUNT(*) 
FROM tb_order_item
WHERE order_price = 1000;

-- 주문 상품의 가격이 1000원 초과 인 것들의 합을 구하시오
SELECT SUM(order_price)
FROM tb_order_item toi 
WHERE order_price > 1000;

-- 주문 상품의 가격이 1000원 초과 2000원 이하 인 것들의 주문 상품 상태를 가져오세요!
SELECT order_item_status 
FROM tb_order_item 
WHERE order_price > 1000 AND 2000 >= order_price;

-- 주문 상품의 가격 별 개수를 가져오세요.
SELECT order_price, order_item_id, COUNT(*)
FROM tb_order_item 
GROUP BY order_price;

-- 주문 상품 중 10월에 취소한 상품의 총 가격을 가져오세요.
SELECT SUM(order_price)
FROM tb_order_item 
WHERE order_item_status = 'CANCEL' and DATE_FORMAT(cancel_date, '%Y%m') = '202210';

-- 주문 상품 중 1월에 취소한 상품의 총 가격을 가져오세요. 없다면 0으로 표시해주세요.
SELECT IFNULL(SUM(order_price), 0) AS price
FROM tb_order_item 
WHERE order_item_status = 'CANCEL' and DATE_FORMAT(cancel_date,'%Y%m') = '202201';

-- 유저아이디가 1인 사람의 이름과 주문의 주문상태를 가져오세요.inner join이 교집합 
-- outer join 안에 left와 right 가 있음 
SELECT tu.name, to2.order_status
FROM tb_user tu LEFT JOIN tb_order to2 ON tu.user_id = to2.user_id 


-- 유저아이디가 1인 사람의 주문한 상품의 가격이 2,000원 이상 인 것을 모두 가져오세요.
SELECT tu.name, toi.order_price 
FROM tb_user tu LEFT JOIN tb_order to3 ON tu.user_id = to3.user_id
	LEFT JOIN tb_order_item toi ON to3.order_id = toi.order_id
WHERE 
	tu.user_id = 1
	and toi.order_price >= 2000;

https://www.geeksforgeeks.org/date_format-function-in-mysql/

반응형