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

+ Recent posts