본문 바로가기

SQL

[SQL] 데이터 분석하기 - 구매 지표 추출

데이터 분석의 기초가 되는 SQL을 이용해 데이터를 조회해보도록 하겠습니다.

 

1. 매출액(일자별, 월별, 연도별)

2. 구매자 수, 구매 건수(일자별, 월별, 연도별)

3. 인당 매출액(연도별)

4. 건당 구매 금액(연도별)


1) 매출액(일자별, 월별, 연도별)

 

a) 일별 매출액 조회

 

일별 매출액을 조회하려면 주문일과 판매금액이 필요합니다.

ERD를 보면 주문 일자(orderdate)는 orders 테이블에 존재하고, 판매액(priceEach x quantityOrdered)은 orderdetails 테이블에 존재합니다. 따라서, 해당 테이블 두 개를 결합해야 합니다.

SELECT A.ORDERDATE,
       PRICEEACH*QUANTITYORDERED
FROM CLASSICMODELS.ORDERS A
LEFT
JOIN CLASSICMODELS.ORDERDETAILS B
ON A.ORDERNUMBER = B.ORDERNUMBER

ordernumber 기준으로 주문(order) 테이블에 있는 데이터를 모두 조회하기 위해 LEFT JOIN으로 결합합니다.

이를 일별 매출액을 조회하기 위해 ORDERDATE로 그룹핑한 뒤, 각 상품의 가격과 구매 횟수를 곱한 값의 합을 집계하면 일별 매출액을 계산할 수 있습니다.

 

SELECT A.ORDERDATE, SUM(PRICEEACH*QUANTITYORDERED) AS SALES
FROM CLASSICMODELS.ORDERS A
LEFT
JOIN CLASSICMODELS.ORDERDETAILS B
ON A.ORDERNUMBER = B.ORDERNUMBER
GROUP 
BY 1
ORDER
BY 1;

 

b) 월별 매출액 조회

 

판매일(orderdate)은 'yyyy-mm-dd'의 형태로 구성되어 있습니다. orderdate에서 'yyyy-mm'만 추출할 수 있다면, 월별 매출액을 조회할 수 있습니다. 이를 위해 문자열에서 원하는 문자만 호출하는 함수 SUBSTR()을 사용하면 가능합니다.

 

*문자열에서 원하는 부분만 가져오기

 

Syntax

-SUBSTR(문자열,위치,길이)

 

예를 들어, SUBSTR('ABCED',2,3)을 수행하면 ABCED의 2번 즉 B에서부터 3개의 문자열을 가져옵니다.

실행결과는 'BCD'가 됩니다.

 

이를 이용해 월별 매출액을 조회해볼까요?

SELECT SUBSTR(A.ORDERDATE,1,7) MM,
       SUM(PRICEEACH*QUANTITYORDERD) AS SALES
FROM CLASSICMODELS.ORDERS A
LEFT
JOIN CLASSICMODELS.ORDERDETAILS B
ON A.ORDERNUMBER = B.ORDERNUMBER
GROUP
BY 1
ORDER 
BY 1

 

c) 연도별 매출액 조회

 

연도별 매출액은 월별 매출액과 동일한 방법으로 조회할 수 있습니다.

'yyyy'만 추출하도록 SUBSTR()함수만 조정해주면 됩니다.

SELECT SUBSTR(A.ORDERDATE,1,4) MM,
       SUM(PRICEEACH*QUANTITYORDERD) AS SALES
FROM CLASSICMODELS.ORDERS A
LEFT
JOIN CLASSICMODELS.ORDERDETAILS B
ON A.ORDERNUMBER = B.ORDERNUMBER
GROUP
BY 1
ORDER 
BY 1

 


오늘은 간단하게 매출액 조회를 살펴봤습니다.

 

한 달 동안 텍스트 마이닝 대회 준비, 진로 고민, 휴식을 가지며 2021년을 맞이했습니다.

(자체평가로)중급 단계도 되지 않은 상태에서 텍스트 마이닝 대회에 참여하려니 자신감이 떨어지는 저를 발견했습니다.

그래서 다시 기초에 집중해보자 + 하나라도 완벽히 끝내보자! 라는 마음으로 SQL 책을 펼쳤습니다.

 

어려운 시기가 길어지고 있는데 우리 모두 지치지 말고 힘내봅시다!

 

방문자님들 모두 새해 복 많이 받으세요 :)

 

 

*포스팅 내용은 아래에 링크된 <SQL로 맛보는 데이터 전처리 분석>을 (99.98%)참고하여 작성했습니다.

 


http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791190014694&orderClick=&Kc=

 

 

SQL로 맛보는 데이터 전처리 분석 - 교보문고

데이터 분석을 하기 위해서는 데이터베이스에 존재하는 데이터를 직접 추출할 수 있어야 한다. SQL은 우리가 데이터베이스에 접근하여 필요한 데이터를 조회하고 조작할 수 있도록 해주는 언어

www.kyobobook.co.kr