🔺 박지성이 구매한 도서의 출판사 수
SELECT COUNT(DISTINCT publisher) FROM Book
WHERE bookid IN (SELECT bookid FROM Orders
WHERE custid = (SELECT custid FROM Customer
WHERE name = '박지성'));
SELECT COUNT(publisher) FROM Book JOIN Orders
ON Orders.bookid = Book.bookid
WHERE custid = (SELECT custid FROM Customer WHERE name = '박지성');
🔺 박지성이 구매한 도서의 이름, 가격, 정가와 판매가격의 차이
SELECT bookname, price,ABS(price-saleprice) as "정가와 판매가의 차이"
FROM Book JOIN Orders
ON Orders.bookid = Book.bookid
WHERE custid = (SELECT custid FROM Customer WHERE name = '박지성');
🔺 박지성이 구매하지 않은 도서의 이름
SELECT bookname FROM Book
WHERE bookid NOT IN(SELECT bookid FROM Orders
WHERE custid = (SELECT custid FROM Customer
WHERE name = '박지성'));
🔺 주문하지 않은 고객의 이름
//부속질의 사용
SELECT name FROM Customer WHERE custid NOT IN (
SELECT DISTINCT custid FROM Orders);
//조인
SELECT name FROM Customer LEFT JOIN Orders
ON Customer.custid = Orders.custid
WHERE Orders.custid IS NULL;
🔺 주문 금액의 총액과 주문의 평균 금액
SELECT SUM(saleprice) AS "총액", FORMAT(AVG(saleprice),2) AS "평균 금액"
FROM Orders;
🔺 고객의 이름과 고객별 구매액
SELECT name, SUM(saleprice) FROM Customer JOIN Orders
ON Customer.custid = Orders.custid
GROUP BY name;
🔺 고객의 이름과 고객이 구매한 도서 목록
SELECT name, GROUP_CONCAT(bookname), SUM(saleprice)
FROM Book RIGHT JOIN Orders
ON Book.bookid = Orders.bookid RIGHT JOIN Customer
ON Orders.custid = Customer.custid
GROUP BY name;
🔺 도서의 가격(Book 테이블)과 판매가격(Orders 테이블)의 차이가 가장 많은 주문
SELECT bookname,price, MAX(price-saleprice) AS 차액
FROM Book JOIN Orders
ON Orders.bookid = Book.bookid
ORDER BY 차액 DESC
LIMIT 1;
🔺 도서의 판매액 평균보다 자신의 구매액 평균이 더 높은 고객의 이름
SELECT name FROM Customer
LEFT JOIN Orders ON Customer.custid=Orders.custid
GROUP BY Orders.custid
HAVING AVG(Orders.saleprice) > (SELECT AVG(saleprice) FROM Orders);
🔺 박지성이 구매한 도서의 출판사와 같은 출판사에서 도서를 구매한 고객의 이름
SELECT name FROM Customer JOIN Orders
ON Customer.custid = Orders.custid JOIN Book
ON Orders.bookid = Book.bookid
WHERE publisher IN (SELECT publisher FROM Book
WHERE bookid IN (SELECT bookid FROM Orders
WHERE custid = (SELECT custid FROM Customer
WHERE name = '박지성')))
AND customer.name <> "박지성";
🔺
🔺
🔺