본문 바로가기

dot.6 : 여타/SQL

PostgreSQL : 매출 파악 - 시계열 기반

MySQL은 with구문을 사용하지 못해

PostgreSQL을 (어렵게 어렵게) 설치했다.

 

1. 날짜별 매출 집계

 

 

주어진 데이터를 이용하여 날짜별로 매출을 집계해보자

 

 

count, sum, svg 등 함수를 활용하여

어렵지 않게 구할 수 있다

 

 

2. 이동평균

 

 

평균의 범위를 이동시키며 평균을 구하는 것을

이동평균이라고 한다. 

위 쿼리문은 최근 7일간의 평균을 구하는 것인데

1월 1일 데이터는 이전의 데이터가 없기때문에

값이 null로 나온다.

 

 

3. 당월 매출 누계

 

 

dt 별로 묶었기 때문에 그냥 sum하면 하루씩 합계.

누적 합계를 구하려면 이 sum들의 합계니까

sum의 sum으로 구해야 한다. 

 

파티션 값을 뭐로 해야할지 헷갈렸다. 

 

 

이건 파티션을 dt로 했을 때의 값이다

위에선 월단위로 누적되고 갱신되지만

이건 하루하루 누적 갱신이라 

하루 매출이랑 누적 매출이 같다

 

 

이건 파티션을 아예 적지 않았다.

위의 값과 같아 보이지만

다음 달로 넘어가면 값이 달라질 것이다.

 

 

드디어 with를 사용할 수 있다!

이 구문을 이용하여 일일 매출을 나타내는 

테이블을 임시로 만들어 보았다.

 

 

그리고 임시 테이블을 이용하여 

월 매출을 누계하는

또다른 임시 테이블을 만들어보았다.

 

 

4. 작대비

 

쿼리문은 제대로 썼는데

rate가 왜 저렇게 나오는지 모르겠다.

흠.... 아시는 분 계시면 알려주세요~

 

 

5. Z차트

 

월차매출, 매출누계, 이동년계로 구성된

Z차트를 작성해보았다.

그동안 만들어 본 쿼리들 중 제일 길고 복잡했다

그래도 만들고 나니 뿌듯하고

지우기가 아까웠다.

복습도 제대로 열심히 해야지.

 

고비가 끝난건가 싶었는데

또다른 고비가 찾아왔다.

그래도 차근차근 하다보니

큰 틀도 알겠고 나름 요령도 생겼다.