728x90
서론
select문은 정렬, 제한, 중복제거등을 사용할 수 있다.
select 문에서 사용 가능한 것들
- order by : 정렬
- limit : 제한
- distinct : 중복된 데이터 제거
- group by : 지정한 열의 데이터들을 같은 데이터끼리는 묶어서 결과를 추출
- having : group by 와 함께 사용하는 조건 절
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;
주의점
order by 절은 where 절 다음에 와야한다
select mem_id, mem_name, debut_date
from member
order by debut_date desc
where height >= 164; ---> error!
여러개의 정렬 지정하기
- 평균키가 큰 순서대로 정렬하되, 평균 키가 같으면 데뷔일자가 빠른 순서대로 정렬
select mem_id, mem_name, debut_date
from member
where height >= 164
order by debut_date desc, debut_date asc;
limit
출력하는 개수를 제한합니다
예시
- 회원 테이블을 조회하는데 전체 중 앞에서 3건만 조회할 수 있다.
select *
from memeber
limit 3;
- 데뷔일자가 빠른 회원 3건만 추출
select mem_name, debute_date
from memeber
order by debut_date
limit 3;
- 평균 키가 큰 순으로 중간부터 정렬
select mem_name, height
from member
order by height desc
limit 3, 2;
distinct
조회된 결과에서 중복된 데이터를 1개만 남긴다.
예시
select distinct addr from member
Group by
그룹을 묶어주는 역할을 한다.
예시
- 에이핑크 회원의 경우에 1+2+1+1=5 개의 물건을 구매한 것을 집계하기
select mem_id, sum(amount) from buy group by mem_id;
- 별칭을 사용해서 보기 좋게 만들어보기
select mem_id "회원 아이디", sum(amount) "총 구매 개수"
from buy group by mem_id;
- 회원이 구매한 총합 출력하기
select mem_id "회원 아이디", sum(price*sum) "총 구매 금액"
from buy group by mem_id;
집계함수
함수명 설명
sum() | 합계를 구한다 |
avg() | 평균을 구한다 |
min() | 최소값을 구한다 |
max() | 최대값을 구한다 |
count() | 행의 개수를 센다 |
count(distinct) | 행의 개수를 센다(중복은 1개만 인정) |
having
예시
- 회원 별 총 구매액
select mem_id "회원 아이디", sum(price*amount) "총 구매금액"
from buy
group by mem_id;
having sum(price*amount) > 1000;
- 총 구매액이 큰 순서대로 정렬
select mem_id "회원 아이디", sum(price*amount) "총 구매금액"
from buy
group by mem_id;
having sum(price*amount) > 1000;
order by sum(price*amount) desc;
반응형
'데이터' 카테고리의 다른 글
MySQL 데이터 형식 (0) | 2024.01.20 |
---|---|
데이터 변경을 위한 sql문 (0) | 2024.01.18 |
SELECT-FROM-WHERE (0) | 2024.01.09 |
데이터베이스 개체 (0) | 2023.12.30 |
데이터베이스 모델링 (0) | 2023.12.21 |