SQL 집계 함수

간단한 ‘SQL 집계 함수’ 를 정리하였습니다.

조건절과 Group by 등과 함께 사용하여 다양한 분석을 할 수 있게 해주는 함수 입니다.

COUNT(), MIN(), MAX(), AVG() 함수와 같은 간단한 집계 함수들을 모든 주요 RDBMS에서 지원합니다.

때문에 MySQL, Oracle, PostreSQL, SQL Server 등에서 동일하게 작동합니다.

데이터 카운트

SELECT COUNT(*) FROM 테이블명;              /* 전체 데이타의 개수 가져오기 */
SEELECT COUNT(칼럼) FROM 테이블명;            /* NULL은 제외한 해당 칼럼의 데이타 개수 가져오기 */
SELECT COUNT(DISTINCT 칼럼) FROM 테이블명;    /* NULL을 제외한 해당 칼럼의 고유 값들 가져오기 */

* DISTINCT와 COUNT()의 사용

SQL에서 DISTINCT 키워드는 중복된 값을 제거하는 데 사용됩니다.

DISTINCTNULL 값을 고유한 값으로 취급하며, 결과 집합에서 한 번만 나타나게 합니다.

즉, 여러 행에 NULL 값이 있더라도 SELECT DISTINCT 쿼리의 결과로 NULL은 단 한 번만 표시됩니다.

그러나 COUNT(DISTINCT column_name)와 같은 집계 함수를 사용할 때는 NULL 값이 포함되지 않습니다.

합계, 평균, 최소, 최대

다음은 숫자 데이터가 있는 칼럼에서 사용할 수 있는 함수들 입니다.

SELECT SUM(칼럼) FROM 테이블명              /* 칼럼 값들의 합계 구하기 */
SELECT MAX(칼럼) FROM 테이블명              /* 칼럼 값들 중 최댓값 구하기 */
SELECT MIN(칼럼) FROM 테이블명              /* 칼럼 값들 중 구하기 */
SELECT AVG(칼럼) FROM 테이블명              /* 칼럼 값들의 평균값 구하기 */

집계 함수 사용 시 주의 점

개수를 집계할 때는 해당 함수가 NULL (빈 값)을 포함하는지 여부가 굉장히 중요합니다.

데이터 통계를 낼 때 예상치 보다 수치가 1이라도 다르면 해당 데이터는 잘못된 데이터일 수 있습니다.

위에서도 언급하였지만 SQL에서 집계 함수는 일반적으로 NULL 값을 무시합니다.

예를 들어, COUNT() 함수는 NULL이 아닌 행의 수를 반환하고, SUM() 함수는 NULL 값을 제외한 값들의 합을 반환합니다.

그러나 COUNT(*)는 NULL 값을 포함하여 행의 총 수를 계산합니다.

COUNT(*)과 마찬가지로 COUNT(1)은 모든 행을 계산하지만 NULL 값을 제외합니다.

다음 테이블을 참조해주세요

항목설명
COUNT(*)NULL 값을 포함한 행의 수를 출력
COUNT(1)NULL 값이 아닌 행의 수를 출력
COUNT(표현식)표현식의 값이 NULL 아닌 행의 수를 출력
SUN(표현식)표현식이 NULL 값인 것을 제외한 합계를 출력
ARG(표현식)표현식이 NULL 값인 것을 제외한 평균을 출력
MAX(표현식)표현식이 NULL 값인 것을 제외한 최대값을 출력
MIN(표현식)표현식이 NULL 값인 것을 제외한 최소값을 출력
STDDEV(표현식)표현식이 NULL 값인 것을 제외한 표준편차를 출력
VARIAN(표현식)표현식이 NULL 값인 것을 제외한 분산을 출력

MySQL COUNT(), AVG() and SUM() Functions (w3schools.com)

Leave a Comment

목차