(Database : Basic-8) 집계 함수

Posted by : at

Category : Database


-- COUNT
-- SUM
-- AVG
-- MIN
-- MAX

SELECT *
FROM players
-- SELECT된 정보의 수를 알고 싶다면?

COUNT

SELECT COUNT(*)
FROM players
SELECT COUNT(birthYear) 
FROM players
-- 집계함수는 집합이 null이면 무시한다.

DISTINCT

-- 중복된 City를 제외하고 싶다면?
SELECT DISTINCT birthCity
FROM players
SELECT DISTINCT birthCity, birthMonth, birthDay
-- DISTINCT는 birthCity, birthMonth, birthDay 세 가지 모두에 걸릴까?
-- Nope! birthCity, birthMonth, birthDay 세 가지가 모두 DISTINCT해야 DISTINCT로 걸러짐
FROM players
-- 중복없이 도시의 개수를 찾고싶다
SELECT COUNT(DISTINCT birthCity)
FROM players

AVG, MIN, MAX

-- 선수들의 평균 weight
SELECT AVG(weight)
-- SELECT SUM(weight) / COUNT(weight)
FROM players

weight이 NULL일경우 없는걸로 하지말고 다른 숫자로 치환하고자 한다면?
(NULL로 된 부분이 COUNT되지 않으니 평균이 달라질수 있기에)

SELECT AVG(CASE WHEN weight IS NULL THEN 0 ELSE weight END)
FROM players

참고로 MIN, MAX는 문자열이나 날짜에도 적용가능(참고)


About Taehyung Kim

안녕하세요? 8년차 현업 C++ 개발자 김태형이라고 합니다. 😁 C/C++을 사랑하며 다양한 사람과의 협업을 즐깁니다. ☕ 꾸준한 자기개발을 미덕이라 생각하며 노력중이며, 제가 얻은 지식을 홈페이지에 정리 중입니다. 좀 더 상세한 제 이력서 혹은 Private 프로젝트 접근 권한을 원하신다면 메일주세요. 😎

Star
Useful Links