강원도지사

--집계(통계)함수
--종류: sum()(합을 구할때), avg()(평균을 구할 때)
--max()(최댓값을 구할 때),min()(최소값을 구할 때), count()(표, 속성의 개수를 셀때)
--괄호 안에는 속성이 들어간다

--예를 들어 sum(price) : 가격의 총합, avg(가격의 평균), max, min도 이런 느낌
--집계함수는 select절에 적으면 된다.

--null값은 count에서 제외

select * from customer;
select * from book;
select * from orders;



--Q1. 모든 고객들이 주문한 도서의 총 판매액을 구하시오

select sum(saleprice) 총매출
from orders;



--Q2. 핸드폰 번호를 가지고 있는 고객 명수를 구하시오

select count(phone)
from customer;

--where phone = null (x)
--where phone is null(o)
--null의 경우에만 is사용



--Q3. 폰번호를 가지고 있지 않은 사람의 이름을 출력하시오
--Q3,4는 where 사용함

select name
from customer
where phone is null;



--Q3. 폰번호를 가지고 있는 사람의 이름을 출력하시오

select name 이름
from customer
where phone is not null;


--Q4.고객이 주문한 도서의 총판매액, 평균값, 최저가, 최고가를 구하시오. (주문된 가격에 의함)
--select * from orders; 한번 해보고 요소가 뭔지 찾기

select sum(saleprice) 총판매액, avg(saleprice) 평균값, min(saleprice)최저가, max(saleprice) 최고가
from orders;



  

--지우는 순서
--1. orders 2. customer or book 
--만드는 순서
--1.customer or book 2. orders 
--orders 테이블은 포린키가 있는데 오더스 테이블에서 커스트아이디가 커스토머테이블을
--레퍼런스(참조)하여서,오더스테이블의 북아이디가 북테이블을 레퍼런스하여서 오더스 먼저 삭제해야 함

--Q6. 출판사 종류의 개수는 총 몇개인가

select count(DISTINCT publisher)"출판사 종류의 개수"
from book;
--중복 제외(distinct)사용
--문자에 띄어쓰기 있으면 " " 쌍따옴표 써주면 됨




--★order by 정의 : 정렬할때 사용
--오름차운 asc(ascending), 내림차순 desc(descending)
--asc는 생략가능, 기본 값(defalut)이라서

select *
from book
order by price ; --오름차순 asc생략



select *
from book
order by price desc;--내림차순

select *
from book
order by bookname desc;--문자내림차순


--order by뒤에 속성을 여러 개 적을 수도 있다. 만약 첫번째 속성으로 정렬을 한뒤 가격이 동일한 책이 두개가 나오면
--그 안에서는 어떤 기준을 정렬할 것인가를 고민할 때 두번째 속성을 기준으로 정렬한다.

--Q7. 도서를 가격의 내림차순으로 검색하시오, 가격이 같다면 출판사의 오름차순으로 출력하시오

select *
from book
order by price desc,publisher asc;



요약

1) 집계(통계)함수
--종류: sum()(합을 구할때), avg()(평균을 구할 때)
--max()(최댓값을 구할 때),min()(최소값을 구할 때), count()(표, 속성의 개수를 셀때)

--집계함수는 select절에 적으면 된다.

 

2)★order by

-- 정의 : 정렬할때 사용
--오름차운 asc(ascending), 내림차순 desc(descending)
--asc는 생략가능

profile

강원도지사

@박강원입니다

노력하여 끊임없이 발전하는 사람이 되겠습니다!