인프런 커뮤니티 질문&답변

ajh7457님의 프로필 이미지
ajh7457

작성한 질문수

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

일/주/월/분기별 매출액 및 주문건수 시각화 하기

효율적인 쿼리

작성

·

272

0

안녕하세요 선생님,

nw 데이터로 자체적으로 문제를 만들어 풀어보았는데

해당 쿼리가 맞는지, 더 효율적인 쿼리가 있는지 여쭤봅니다. 항상 감사합니다.

---- 개인별로 가장 많이 산 상품과 그 상품을 샀을 떄 동시구매한 상품 top 1

with temp_01 as (select a.order_id, a.line_prod_seq, a.product_id, a.amount, b.customer_id, c.product_name

from order_items a

join orders b on a.order_id = b.order_id

join products c on a.product_id = c.product_id )

, kk as (select d.customer_id, d.order_id, d.product_id, d.product_name, d.amount, d.line_prod_seq

from temp_01 d)

, aa as (select d.customer_id, d.product_id as prod_01, kk.product_id as prod_02

from temp_01 d join kk on d.customer_id = kk.customer_id

where d.product_id != kk.product_id)

, bb as (select aa.customer_id, aa.prod_01, aa.prod_02, count(*) prd_num

from aa

group by 1,2,3

order by 1,2,4 desc)

, cc as (select customer_id, prod_01, prod_02, max(prd_num) max_num

from bb

group by 1,2,3)

select *

from cc

where prod_01 != prod_02 and max_num != 1

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

음, 제가 봤을 땐 별 문제가 없는것 같습니다.

근데 강의 내용이 아니라, ajh7457 님이 생각하신 내용을 이렇게만 적어주시면 제가 판단하기가 어려운점이 있군요.

좀 더 자세하게 개별 With절 별로 어떤것을 하고자 함인지, 그리고 최종적으로 어떻게 이들 집합을 결합해서 결과를 얻으려고 했는지 주석을 적어 주셨으면 제가 이해하는데 더 도움이 될듯 합니다.

주석을 스스로 자세히 적는 버릇을 들이시면 SQL 실력 향상도 더 도움이 될 것입니다.

감사합니다.

 

ajh7457님의 프로필 이미지
ajh7457

작성한 질문수

질문하기