본문 바로가기
SQL

[SQL] p.193 연습문제

by Minius 2018. 3. 2.
반응형

-- 1.(5)박지성이 구매한 도서의 출판사 수                                

select count(distinct publisher) as "출판사 수"

from customer t1, orders t2, book t3

where t1.custid = t2.custid

  and t2.bookid = t3.bookid

  and t1.name = '박지성';

  

--1.(6)박지성이 구매한 도서의 이름, 가격, 정가와 판매가격의 차이

select t3.bookname as 이름, t3.price as 가격, t3. price - t2.saleprice as 차액

from customer t1, orders t2, book t3

where t1.custid = t2.custid

and t2.bookid = t3.bookid

and t1.name = '박지성';


-- 1.(7)박지성이 구매하지 않은 도서의 이름

select bookname from book t1

where not exists (select bookname from customer t1, orders t2

                  where t1.custid = t2.custid

                  and t2. bookid = t1. bookid

                  and t1.name = '박지성');


--2.(8) 주문하지 않은 고객의 이름(부속질의 사용)

select name from customer

where name not in (select name from orders t1, customer t2

                   where t1.custid = t2.custid);

                   

--2.(9) 주문 금액의 총액과 주문의 평균 금액

select sum(saleprice) as 총액, avg(saleprice) as 평균

from orders;


--2.(10) 고객의 이름과 고객별 구매액

select t2.name as 이름, sum(saleprice) as 구매액

from orders t1, customer t2

where t1.custid = t2.custid

group by t2.name

order by sum(saleprice) desc;


--2.(11)고객의 이름과 고객이 구매한 도서 목록

select t1.name as 이름, t3.bookname as 도서

from customer t1, orders t2, book t3

where t1.custid = t2.custid

and t2.bookid = t3.bookid;


--2.(12)도서의 가격(book 테이블)과 판매가격(orders 테이블)의 차이가 가장 많은 주문

select t1.price, t2.saleprice, t1.price-t2.saleprice, t2.*

from book t1, orders t2

where t1.bookid = t2.bookid

and t1.price - t2.saleprice = (select max(t3.price-t4.saleprice)

                                from book t3, orders t4

                                where t3.bookid - t4.bookid);


--2.(13)도서의 판매액 평균보다 자신의 구매액 평균이 더 높은 고객의 이름

select name, avg(saleprice)

from customer t1, orders t2

where t1.custid = t2.custid

group by name

having avg(saleprice) > (select avg(t3.saleprice) from orders t3);



'SQL' 카테고리의 다른 글

View  (0) 2018.03.08
2018-03-07 SQL  (0) 2018.03.07
SQL 연습문제 답  (0) 2018.03.06
[SQL] DDL, DML이란?  (0) 2018.03.05
Oracle SQL  (0) 2018.02.12

댓글