sql을 작성 하는데 데이터의 특정 조건의 합, 특정 값 이상 등 group by를 해야할 경우가 생길 수 있다. 이와 같은 경우 inline view를 이용하여 처리를 할 수도 있지만, having을 이용하면 처리 하기가 유용하다. 직접 사용해보도록 하자.
Mysql은 설치되어 있다고 가정 한다. 아래 sql을 실행 하자.
create table tt_date (
tt_time timestamp,
title varchar(10)
);
insert into tt_date values ('2012-01-01','title1');
insert into tt_date values ('2012-01-02','title2');
insert into tt_date values ('2012-01-03','title3');
insert into tt_date values ('2012-01-04','title4');
insert into tt_date values ('2012-01-05','title5');
insert into tt_date values ('2012-01-06','title6');
insert into tt_date values ('2012-02-07','title7');
insert into tt_date values ('2012-02-08','title8');
insert into tt_date values ('2012-02-09','title9');
insert into tt_date values ('2012-02-10','title10');
insert into tt_date values ('2012-02-11','title11');
insert into tt_date values ('2012-03-12','title12');
insert into tt_date values ('2012-03-13','title13');
insert into tt_date values ('2012-03-14','title14');
insert into tt_date values ('2012-03-15','title15');
테이블을 생성 했을 것 이다. 아래의 조건을 보도록 하자.
Step 1. 1월 데이터만 출력 하기.
select tt_time from tt_date group by tt_time having month(tt_time) = 1
Step2. 1월 3일 ~ 1월 5일 데이터만 출력 하기.
select tt_time from tt_date
group by tt_time having month(tt_time) = 1 && day(tt_time) > 2 && day(tt_time) < 6
사용한 날짜 함수.
- month(date): 날짜에 대한 월을 반환 한다.
- day(date): 날짜에 대한 일을 반환 한다.
group by 후에 조건을 걸어 조회를 할 수 있다. 날짜 함수와 같이 사용하여 알아보았다.
'Database' 카테고리의 다른 글
Mysql Timestamp Column 생성 하기 (0) | 2012.12.06 |
---|---|
Mysql root 비밀번호 변경하기 (0) | 2012.12.03 |
Oracle 덤프 뜨기 (0) | 2012.11.26 |
count() 에 대해서 (0) | 2012.11.16 |
Mysql 사용자 생성 하기 (0) | 2012.11.13 |