집계함수
Last updated
Last updated
SQL에서 통계내는것도 되게 쉽게 할 수 있는데
SQL의 집계함수 (aggregate function) 를 사용하면 됩니다.
집계함수는 특정 컬럼의 합계, 평균, 최댓값 등 통계를 내주는 함수인데 엑셀함수랑 사용법이
비슷하고 쉬움
그래서 오늘은 카드회사 취직했다고 가정하고 돈 많이쓰는 핵심 고객을 색출해봅시다.
이번달의 고객별 카드 사용금액 테이블입니다.
현재 테이블에서 가장 돈 많이 쓴 사람을 찾아서 상을 줍시다.
숫자가 들어있는 컬럼에서 최댓값을 찾고 싶으면 MAX() MIN() 함수 쓰면 됩니다.
소괄호 붙어있는건 전부 함수라고 부릅니다
MAX(컬럼명)을 쓰면 해당 컬럼의 최댓값이 들어있는 행만 출력해줍니다.
MIN(컬럼명)을 쓰면 해당 컬럼의 최솟값이 들어있는 행만 출력해줍니다.
컬럼명 뒤에 AS 원하는단어 사용하면 됩니다.
그럼 컬럼명을 원하는 단어로 바꿔줍니다.
다른 단어로 치환하는걸 전문용어로 alias 라고 합니다.
주의점은 AS 뒤에 작명할 때 실제 있는 컬럼명 말고 다른 단어를 작명하는게 좋습니다.
안그러면 컴퓨터가 헷갈린다고 뭐라그럴 수도 있음
아무튼 쓰고싶을 때 쓰면 되는데
나중에 AS 문법을 꼭 필요로하는 곳들이 있으니 사용법은 잘 외워둡시다.
고객등급이 vip인 사람들만 뽑아서 통계를 내고 싶으면 어쩌죠?
그럼 당연히 vip인 사람만 필터링하고 통계내면 됩니다.
예시로 "고객등급이 vip인 사람의 평균 사용금액"을 구해봅시다.
그래서 "필터링한 결과에서 통계를 낼 수 있다" 이걸 잘 기억해둡시다.
나중에 실제 데이터 가지고 분석할 때도 중요한 점인데
전체를 가지고 통계내는 것 보다
특정 그룹의 통계를 내는게 대부분 더 의미찾기가 쉽습니다.
결과가 입맛에 맞게 나올 때 까지 그룹의 범위를 맘대로 조작할 수 있으니까요.
컬럼을 출력할 때 왼쪽에 DISTINCT 키워드를 부착해줄 수 있는데
이러면 각 행에 있는 값들 중에 유니크한 값만 골라서 필터링해줍니다.
쉽게말하면 중복데이터는 제거해서 보여달라는 뜻임
오늘의 결론은
SELECT MIN(컬럼명) / MAX(컬럼명) / COUNT(컬럼명) 등을 쓰면
그 컬럼의 통계를 내주고 그 값을 그 자리에 남겨줍니다.
간단한 통계가 필요하면 사용합시다.
Q1. 최대 결제횟수와 최소 결제횟수를 출력해봅시다.
Q2. 고객등급이 vip인 사람들의 '평균 결제횟수'와
고객등급이 vip인 사람들의 '사용금액 총 합계'를 구해봅시다.
Q3. 연체횟수가 1회 이하인 사람은 몇명일까요?