상세 컨텐츠

본문 제목

GROUP BY & HAVING

프로그래밍/Oracle

by ........? 2012. 5. 15. 16:10

본문

SELECT TO_CHAR(INSERT_DATE,'YYYYMMDD'),
              ACCESS_IP
   FROM  FBC_ACCESS_LOG
 WHERE JOIN_ACCESS_POINT_CD = '108_M_2012050900001'
 GROUP BY TO_CHAR(INSERT_DATE,'YYYYMMDD'), ACCESS_IP;

-날짜별 아이피별로 묶어서 정렬해라

-GROUP BY 를 사용하려는 경우 SELECT 한 것과 같아야 한다.

-DATE 타입의 경우 초까지 같아야 GROUP BY 가 되므로 년월일까지 잘라서 사용




SELECT ACCESS_IP,
              COUNT(*) // COUNT(ACCESS_IP) 와 같음, ()은 카운트 원하는 칼럼명
   FROM FBC_ACCESS_LOG
 WHERE JOIN_ACCESS_POINT_CD = '108_M_2012050900001'
 GROUP BY ACCESS_IP;

ACCESS_IP 별로 묶은후 ACCESS_IP를 카운트해라




HAVING

GROUP BY 수행후에 조건을 걸고 싶을때 사용

이벤트 테이블에서 이벤트 별로 GROUP BY 한후에

COUNT가 1보다 큰것만 보고싶을때 사용

SELECT EVENT_CD,
              COUNT(*) CNT
  FROM FBE_EVENT_DATA
 WHERE INSERT_DATE > TO_DATE('20120429','YYYYMMDD')
 GROUP BY EVENT_CD
 HAVING COUNT(*) > 1;

'프로그래밍 > Oracle' 카테고리의 다른 글

UPDATE 문  (0) 2012.06.04
UNION ALL & UNION  (0) 2012.05.15
오라클 TRUNC  (0) 2012.05.08
오라클 DECODE  (0) 2012.05.08
오라클 DBMS_RANDOM.VALUE  (0) 2012.04.23

관련글 더보기

댓글 영역