[SQL] SQL 그룹 함수

JUNBEOM PARK·2022년 3월 7일

💡 SQL

목록 보기
3/7
post-thumbnail

🤔 그룹 함수 ?

테이블의 전체 행을 하나 이상의 컬럼을 기준으로 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수이다.

그룹함수의 종류는 COUNT, MAX, MIN, SUM, AVG, STDDEV, VARIANCE 등이 있다.



함수

1. COUNT 함수

테이블에서 조건을 만족하는 행의 개수를 반환하는 함수

COUNT(*) // -> NULL 값을 포함한 전체 행의 갯수
COUNT(컬럼명) // -> NULL 값을 제외한 전체 행의 갯수


2. MAX, MIN 함수

MAX, MIN 함수를 데이터가 없는 테이블에 사용했을 때에는 NULL 값을 리턴 한다.

SELECT MAX(컬럼명) FROM 테이블명; // -> 컬럼 값들 중에서 최대값
SELECT MIN(컬럼명) FROM 테이블명; // -> 컬럼 값들 중에서 최소값


3. SUM 함수

지정한 컬럼 값의 합계를 변환하는 함수로 해당 컬럼 값이 NULL인 것은 제외하고 계산한다.

SELECT SUM(컬럼명) FROM 테이블명;


4. AVG 함수

지정한 컬럼 값의 평균 값을 변환하는 함수로 해당 컬럼 값이 NULL인 것은 제외하고 계산한다.

SELECT AVG(컬럼명) FROM 테이블명;


GROUP BY절

특정 컬럼 값을 기준으로 테이블의 전체 행을 그룹별로 나누기 위한 절이다.
SELECT절에 나온 일반컬럼(그룹함수를 뺀 나머지 컬럼)은 무조건 GROUP BY절에 포함되어야 한다.
그러나 반대로 GROUP BY절에 있는 일반컬럼은 SELECT절에 포함되지 않아도 된다.
GROUP BY절에는 컬럼이름을 써야하며 alias(별칭)을 쓰면 안된다.

구문

SELECT 컬럼(GROUP BY에 정의한 컬럼명만), 그룹함수....

FROM 테이블명1, 테이블2....

WHERE 조건

GROUP BY 컬럼명(그룹화 하고 싶은 기준)

HAVING 그룹화된 데이터에 명시할 조건

ORDER BY 컬럼


HAVING절

SELECT 명령문의 WHERE절과 비슷한 기능을 하는 것으로 GROUP BY절에서 조건 검색을 할 경우 반드시 HAVING절을 사용해야 한다.
HAVING절은 GROUP BY절 다음에 위치 해야 한다.
GROUP BY전에 조건을 적용해야 한다면 WHERE절에 명시 해야 한다.

profile
DB 엔지니어👍

0개의 댓글