반응형
함수 설명
함수 | 설명 |
GROUP BY 칼럼명 | 칼럼명 값을 기준으로 그룹화하여 집계된 값 추출 |
WITH ROLLUP | 전체의 집계값 *ORDER BY와 함께 사용 불가 |
HAVING | 그룹화된 데이터 필터링 |
DISTINCT | 중복된 값 제거 |
더보기
WHERE vs. HAVING
- WHERE: GROUP BY 전의 데이터를 걸러낼 때 사용
- HAVING: GROUP BY 후의 데이터를 걸러낼 때 사용
더보기
GROUP BY vs. DISTINCT
특징 | GROUP BY | DISTINCT |
목적 | 그룹화 및 집계 수행 | 중복 제거 |
주 사용사례 | 그룹별 집계 계산 | 고유 값 조회 |
집계함수(sum, count 등) 사용 여부 | 주로 사용 | 불필요 |
결과 | 그룹별 요약 데이터 반환 | 중복없는 고유 행 반환 |
구문 간단 | 그룹별 통계나 패턴 분석에 적합 | 단순한 고유 값 추출에 적합 |
728x90
예시
- SELECT 나라, COUNT(*) FROM 고객 GROUP BY 나라 ;
- 해석: ‘나라’로 그룹화하고, ‘나라’로 그룹핑된 갯수를 출력해라
- 결과: 한국은 3개, 미국은 1개이기 때문에 ‘나라’칼럼은 ‘한국’과 ‘미국’ 출력되고 갯수가 출력
- SELECT 나라, COUNT(*) FROM 고객 GROUP BY 나라 WITH ROLLUP;
- 해석: ‘나라’로 그룹화하고, ‘나라’로 그룹핑된 갯수를 출력해라. 그리고 총 합계도 출력해라
- 결과: 한국은 3개, 미국은 1개이기 때문에 ‘나라’칼럼은 ‘한국’과 ‘미국’ 출력되고 갯수가 출력. WITH ROLLUP으로 3+1 = 4도 출력
- SELECT 나라, COUNT(*) FROM 고객 WHERE 날짜 > DATE(’2000-01-01) GROUP BY 나라 HAVING COUNT > 2;
- 해석(1 → 2 → 3 순)
- WHERE 조건 실행: 날짜가 ’2000-01-01’ 보다 큰 데이터 추출
- GROUP BY 조건 실행: ‘나라’로 그룹핑하고 그룹핑된 갯수 추출
- HAVING 조건 실행: 2번 데이터에서 갯수가 2개보다 큰 데이터 추출
- 결과: 한국은 3개지만 홍길동은 날짜 조건 미충족하여 2개, 미국은 2개, 일본은 추출 갯수가 1개라서 HAVING 조건 미충족하여 미추출되어, 한국’과 ‘미국’ 출력되고 갯수가 각각 2로 출력
- 해석(1 → 2 → 3 순)
- SELECT DISTINCT 나라, COUNT(*) FROM 고객 ;
- 해석: ‘나라’칼럼에서 중복값을 제거하고 추출해라
- 결과: 한국이 3개, 미국 2개, 일본 1개인데, 중복을 제거하므로 한국, 미국, 일본만 추출
728x90
반응형
LIST
'GA 및 data > SQL' 카테고리의 다른 글
[SQL] UNION, UNION ALL (4) | 2024.11.28 |
---|---|
[SQL] 서브쿼리 (0) | 2024.11.26 |
[SQL] IF, CASE, IFNULL 조회 (0) | 2024.11.23 |
[SQL] 시간과 날짜 함수 (0) | 2024.11.21 |
[SQL] 사칙연산 조회 (0) | 2024.11.17 |
댓글