집계 함수
SELECT 절에서 사용 가능한 정보를 모아서 계산하는 함수를 말합니다.
"함수명(칼럼명)" 형태로 사용하며 함수 이름이 명확하여 간단하게 사용할 수 있습니다.
SELECT COUNT(*) : 테이블의 모든 ROW의 개수를 추출합니다.
SELECT COUNT(NAME) : 테이블의 칼럼 중 NAME에 해당하는 ROW의 개수를 추출합니다. 이때 주의해야 할 점은 NULL은 포함되지 않으므로 COUNT(*)의 결과와 다를 수 있습니다.
- COUNT : ROW의 총개수를 계산합니다.
- SUM : ROW의 합계를 계산합니다. 이때 칼럼이 덧셈이 불가능한 STRING 등의 타입인 경우 0이 나옵니다.
- AVG : 평균을 계산합니다. SUM과 마찬가지로 계산이 불가능한 경우 0이 나옵니다.
- MAX, MIN : 최대, 최소를 계산합니다. SUM, AVG와 다르게 STRING의 경우 사전 순으로 정렬된 결과를 기준으로 계산이 가능합니다. mysql에서는 order by, limit를 사용해 같은 결과를 구할 수 있습니다.
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
최댓값 구하기
MAX, 혹은 ORDER BY, LIMIT를 이용해 구할 수 있습니다. 오라클의 경우 LIMIT를 사용할 수 없기 때문에 MAX 혹은 파티션 함수를 이용해야 합니다.
SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME DESC LIMIT 1;
SELECT MAX(DATETIME) FROM ANIMAL_INS;
최솟값 구하기
SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1;
SELECT MIN(DATETIME) FROM ANIMAL_INS;
동물 수 구하기
전체 동물의 수를 구해야 하므로 *, 혹은 NULL이 될 수 없는 ANIMAL_ID 등의 개수를 구해야 합니다.
SELECT COUNT(ANIMAL_ID) FROM ANIMAL_INS;
SELECT COUNT(*) FROM ANIMAL_INS;
중복 제거하기
DISTINCT를 활용하여 중복을 제거하고 COUNT를 사용합니다.
SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS;
반응형
'스터디 > SQL' 카테고리의 다른 글
[SQL] String, Date 처리 (0) | 2021.03.03 |
---|---|
[SQL] Join (0) | 2021.03.02 |
[SQL] NULL 처리 (0) | 2021.02.28 |
[SQL] GROUP BY (0) | 2021.02.28 |
[SQL] SELECT (0) | 2021.02.26 |