selevt 절의 형식
select 열_이름열_이름
from 테이블_이름
where 조건식
group by 열_이름
having 조건식
order by 열_이름
limit 숫자
order by 절
결과가 출력되는 순서 조절
SELECT mem_id, mem_name, debut_date
from member
order by debut_date;
내림차순 정렬
SELECT mem_id, mem_name, debut_date
from member
order by debut_date desc; -- 내림차순
평균 키(height) 가 164 이상인 회원들이 키가 큰 순서대로 출력
SELECT mem_id, mem_name, debut_date, height
from member
where height >= 164
order by debut_date desc;
limit
출력의 개수 제한
전체중 앞에서 3건만 조회
SELECT *
from member
limit 3;
데뷔 일자 빠른 순으로 3건 조회
SELECT mem_name, debut_date
from member
order by debut_date
limit 3;
평균 키(height)가 큰 순으로 정렬하되 3번째부터 2건만 조회
SELECT mem_name, height
from member
order by height desc
limit 3, 2;
distnct
중복된 내용 제거
select distinct addr from member;
group by 절
그룹으로 묶어주는 역할
select mem_id, amount from buy order by mem_id;
집계 함수
group by 와 함께 주로 사용되는 집계함수
함수명 | 설명 |
sum() | 합계 구하기 |
avg() | 평균 구하기 |
min() | 최소값 구하기 |
max() | 최대값 구하기 |
count() | 행의 개수 세기 |
count(distinct) | 행의 개수 세기(중복은 1개만 인정) |
각 회원(mem_id)별로 구매한 개수(amount) 를 합쳐서 출력
group by 로 회원별로 묶기 sum() 함수로 구매한 개수 합치기
select mem_id, sum(amount) from buy group by mem_id;
전체 회원이 구매한 물품 개수(amount)의 평균 구하기
select avg(amount) "평균 구매 개수" from buy;
회원 테이블(member)에서 연락처가 있는 회원의 수 세기
select count(*) from member;
sum()으로 회원( mem_id)별 총 구매액 (having 사용)
select mem_id "회원 아이디", sum(price*amount) "총 구매 금액"
from buy
group by mem_id
having sum(price*amount) > 1000; -- having절은 꼭 group by절 뒤에 나와야 한다