데이터를 SQL 을 이용하여 목적에 따라 정리하거나, 레코드의 다른 값을 조합해서 새로운 값을 집계하기 위해 우리는 SQL을 배운다. 그것이 바로 '지표 정의' 이다.
이번 시간에는 샘플 매출 데이터에서 '지표정의'를 하는 여러 방법에 대해 소개하겠다.
샘플 데이터
지표1 - 분기별 매출 증감 판정하기
새로 등장하는 형식인 case문 과 sign 함수.
case는 일반적인 if 문이라고 생각하면 편한데,
case 문 안에
'when 조건 식' 이 참이면 'then 결과값',
거짓이면 다음 코드로,
모든 조건식이 만족 안될때는 'else 결과값' 도출
end 로 마무리 되는 형식이다.
어렵지 않으니 이해하기는 쉬울 것이라고 생각된다.
sign 함수는 값이 양수면 1, 0이면 0, 음수면 -1을 도출하는 함수이다.
2. 연간 평균 매출 찾기
단순하게 '그냥 (q1+q2+q3+q4) / 4를 하면 되는것 아닌가?' 라는 생각을 할 수 있지만,
우리 샘플 데이터의 2017년 q3,q4 열의 값이 null 이기 때문에 이를 주의해야 한다.
COALESCE(값,값,값,,,,,)
첫번째 인자의 값이 NULL 이면 두번째 인자값을 리턴, 모든 인자가 NULL 이면 NULL 을 리턴
위 상황에서 2017년은 (92000+81000+0+0) / 4 로 계산 된다.
하지만 이로인해 평균값이 크게 낮아지는 상황이 벌어진다.
따라서 2017년의 매출 평균을 구하기 위해서는 (92000+81000+0+0) / 2 라는 식이 필요하다.
나눠주는 값에 coalesce 함수와 앞서 알아본 sign 함수를 사용하여 null->양수->1, null->0->0으로 변환하였다.
(92000+81000+0+0) / 2 도출 성공
3. 분기 별 매출 비율 구하기
분기별 매출 비율을 구하기 위해서는 (분기 / 총 매출) 식을 나타내야 함으로 2번의 방법으로
총 매출을 구한 뒤, 분기 별로 나누어 준다.
여기서 처음보는 함수는 ROUND 함수.
ROUND(값,자릿수)
ROUND 함수는 지정된 값을 반올림 해주는 함수로, 두번째 인자에서 지정해 준 소수자리 만큼 반올림한다.
단 지정한 자릿수가 0 또는 음수 일 경우에도 정상작동 되는데, 0일경우 1의 자리까지 나타내고,
-1부터 10의자리까지 나타낸다.
EX)
ROUND(1234.567,1) ---->1234.6
ROUND(1234.567,0) ---->1235
ROUND(1234.567,-1) ---->123
이번 글에서는 매출 데이터를 다루는 3가지 방법을 알아보았습니다. 위 세가지 방법은 여러 '지표정의' 중 3가지 방법이므로 데이터 분석가들은 이 지표부터 시작하여 다양한 정보를 의사결정자에게 전달해야 합니다.
'Specialist > SQL' 카테고리의 다른 글
[빅쿼리-SQL] 테이블 만들기! (create table) (1) | 2022.04.29 |
---|---|
[빅쿼리 - SQL]를 사용하여 IP 데이터 다루기(cast,pow,concat,lpad 함수 사용) (1) | 2022.04.29 |
[빅쿼리 - SQL]를 사용하여 날짜/타임스탬프 다루기(current_data, current_timestamp, substr 함수) (0) | 2022.04.29 |
[빅쿼리 - SQL]를 사용하여 URL에서 요소 추출하기(host, split 함수) (0) | 2022.04.29 |
구글 빅 쿼리(Google BigQuery) 시작하기 (0) | 2022.04.18 |
댓글