TIL. 35 [SQL] GROUP BY, HAVING

조윤식·2022년 8월 25일
0

[SQL]

목록 보기
1/1

GROUP BY

  • 지정된 열의 값이 하나의 그룹으로 묶임
  • GROUP BY + 집계함수
  • 점포별, 상품별, 월별, 일별 등 특정 단위로 집계할 때 사용

SELECT [GROUP BY 대상 컬럼 이름], ... , [그룹 함수]
FROM [테이블 이름]
WHERE 조건식
GROUP BY [컬럼 이름];

GROUP BY가 쓰인 쿼리의 SELECT 절에는 GROUP BY 대상 컬럼과 그룹 함수만 사용 가능함

HAVING

SELECT [컬럼 이름], ..., [그룹 함수]
FROM [테이블 이름]
WHERE 조건식
GROUP BY [컬럼 이름]
HAVING 조건식;

  • HAVING + 조건식 형식으로 사용함
  • 조건식이 True(참)이 되는 그룹만 선택함
  • HAVING 절의 조건식에서는 그룹 함수를 활용함

집계함수는 WHERE 구의 조건식에서는 사용할 수 없음 조건식이 참인 그룹값만 클라이언트에게 반환

WHERE 구에서는 집계함수를 사용할 수 없다! 집계함수를 사용할 경우 HAVING 구로 검색조건을 지정! GROUP BY에서 지정한 열 이외의 열은 집계함수를 사용하지 않은 채 SELECT 구에 지정할 수 없다!

COUNT

그룹의 값 수를 세는 함수

([컬럼 이름]) 형식으로 SELECT, HAVING 절에서 사용

  • 집계할 컬럼 이름은 그룹의 기준이 되는 컬럼 이름과 같아도 되고, 같지 않아도 됨

  • COUNT(1)은 하나의 값을 1로 세어주는 표현으로 COUNT 함수에 자주 사용함

  • GROUP BY가 없는 쿼리에서도 사용 가능하며, 이때는 전체 로우에 함수가 적용 됨

    SELECT [컬럼 이름], ..., COUNT([컬럼 이름])
    FROM [테이블 이름]
    GROUP BY [컬럼 이름]
    HAVING 조건문;

#SQL

profile
Slow and steady wins the race

0개의 댓글