inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

다양한 사례로 익히는 SQL 데이터 분석

카테고리별 기준 월 대비 매출 비율 추이 SQL로 구하기

쿼리 관련 질문이 있습니다.

해결된 질문

322

서한진

작성한 질문수 2

1

안녕하세요. 강의 듣는 중 궁금한 점이 있어서 질문드립니다.

 

만약 '카테고리별 기준 월, 전 월, 작년 월 ( 기준 월 = 2023/10, 전월 = 2023/09, 작년 월 = 2022/10)의 차이'를 구하라고 한다면 강의와 같이 기준 연월의 일년 정도의 데이터(2022/10 ~ 2023/10)를 가져와서 사용하는게 더 좋을까요?

아니면, 3개 조건 각각 select하여 카테고리 기준으로 join하는게 더 좋을까요?

ex) with as ( 기준 월), with as (전 월), with as (작년 월)...

 

혹은 더 좋은 방법이 있다면 알려주시면 감사하겠습니다.

 

이런 질문 드려도 되는지 모르겠지만.. 강의 잘 듣고 있습니다.

감사합니다.

sql postgresql dbms/rdbms 퍼포먼스-마케팅 데이터-엔지니어링

답변 1

0

권 철민

안녕하십니까,

잘 듣고 계시다니 저도 기분 좋군요 ^^

제 생각엔 첫번째 방법이 더 좋을 것 같군요. 다만 1년치 데이터를 다 가져오지 않고 in을 사용해서 3개월치 데이터만 가져오면 될 것 같습니다. 다음에 기준월, 이전 월, 일년전월을 구분해서 적용해 보면 될 것 같습니다.

아래는 샘플 SQL입니다. row_number로 되어 있는 부분을 기준월, 이전 월, 일년전월을 구분합니다.

기준월은 1, 이전월은 2, 일년전월은 3 입니다.

with

temp_01 as (

select d.category_name, to_char(date_trunc('month', order_date), 'yyyymm') as month_day

, sum(amount) as sum_amount

, row_number() over (partition by category_name order by to_char(date_trunc('month', order_date), 'yyyymm') desc) as month_gubun

from nw.orders a

join nw.order_items b on a.order_id = b.order_id

join nw.products c on b.product_id = c.product_id

join nw.categories d on c.category_id = d.category_id

where to_char(date_trunc('month', order_date), 'yyyymm') in ('199610','199709', '199710')

group by d.category_name, to_char(date_trunc('month', order_date), 'yyyymm')

)

select category_name

, max(case when month_gubun=1 then sum_amount end) as curr_month_amount

, max(case when month_gubun=2 then sum_amount end) as prev_month_amount

, max(case when month_gubun=3 then sum_amount end) as prev_year_month_amount

from temp_01

group by category_name

 

감사합니다.

0

서한진

친절한 답변 감사합니다 ㅠ

생각하지 못한 방법에 다시 깨닫고 가네요 감사합니다!

"주문별 고객별 연관 상품 추출 SQL로 구하기-02" 수업 질문

0

52

2

쿼리 질문있습니다!!

0

49

2

없는강의요청해도됩니까,,

0

91

2

아래와 동일한 질문에 대한 추가질문입니다

0

71

2

cnt/max로 구한 결과의 차이

0

101

2

쿼리에 대한 질문이 있습니다.

0

116

2

퍼널 질문드립니다.

0

113

1

ADSP자격증

0

283

2

특정 스키마에서 생성한 편집기의 쿼리를 판다스에 삽입하는 방법

0

161

1

백업파일 테이블 생성 오류

0

235

1

"사용자별 특정 상품 주문시 함께 가장 많이 주문된 다른 상품 추출하기"에서 조건관련..

0

162

1

Plotly을 이용해 treemap시각화시 공유사항

0

278

2

월단위 카테고리별 매출액과 주문건수 및 전체매출액 대비 비율 sql로 구하기 수업 중 질문이 있습니다.

0

250

1

with 절 질문

0

240

1

데이터 분석 SQL Fundamentals 강의 할인 문의

0

215

1

리텐션 구하는 방법 문의

0

215

1

캐글데이터 Postgresql 사용

0

356

2

mau 구할때 group by 사용안해도 count 집계함수가 왜 가능한지 모르겠습니다.

0

262

1

매출분석 1에서 partition by와 group by의 차이

0

355

1

postgres 설치 오류

0

319

1

맥 계정에서 postgres 접속 시 비밀번호 입력 실패현상

1

543

2

pandas 연계시 오류.....

0

1246

3

시각화 그래프가 안보여요

0

300

1

ntile 정규분포에 관하여 ... 향후 일을 하게 될 시

0

359

1