실행 순서 관련
243
작성한 질문수 38
-- 직원별 개별 상품 매출액, 직원별 가장 높은 상품 매출액을 구하고, 직원별로 가장 높은 매출을 올리는 상품의 매출 금액 대비 개별 상품 매출 비율 구하기
with
temp_01 as (
select b.employee_id, a.product_id, sum(amount) as sum_by_emp_prod
from order_items a
join orders b on a.order_id = b.order_id
group by b.employee_id, a.product_id
)
select employee_id, product_id, sum_by_emp_prod
, max(sum_by_emp_prod) over (partition by employee_id) as sum_by_emp
, sum_by_emp_prod/max(sum_by_emp_prod) over (partition by employee_id) as sum_ratio
from temp_01
order by 1, 5 desc;
위 쿼리의 실행 순서를 살펴 보았는데 맞는지 조언 얻고 싶습니다.
order_items a와 orders b를 order_id로 join
1의 결과를 employee_id로 group by
select b.employee_id, a.product_id select하여 temp_01 완성
temp_01에서 employee_id, product_id, sum_by_emp_prod, sum_by_emp, sum_ratio를 select
1, 5요인으로 desc 하여 order by
또 sum_ratio를 select 할 때 sum_by_emp를 사용하지 않고 max(sum_by_emp_prod) over (partition by employee_id)를 그대로 쓰는 이유가 궁금합니다
답변 1
0
order_items a와 orders b를 order_id로 join
1의 결과를 employee_id로 group by
select b.employee_id, a.product_id select하여 temp_01 완성
temp_01에서 employee_id, product_id, sum_by_emp_prod, sum_by_emp, sum_ratio를 select
1, 5요인으로 desc 하여 order by
네, 다 맞습니다. 다만 2의 경우 employee_id, product_id로 group by 합니다.
그리고 아래 질문은
sum_ratio를 select 할 때 sum_by_emp를 사용하지 않고 max(sum_by_emp_prod) over (partition by employee_id)를 그대로 쓰는 이유가 궁금합니다
=> select 절에 사용된 max(sum_by_emp_prod) over (partition by employee_id)로 만들어진 alias는 동일한 select절의 다른 컬럼에서 사용될 수 없습니다. 때문에 max(sum_by_emp_prod) over (partition by employee_id)를 두번 사용하였습니다.
감사합니다.
최신버젼 다운로드
0
29
2
'레벨 유지'의 의미에 대한 질문
0
57
2
date_part
0
57
2
lag/lead offset 관련 질문
0
58
2
join 관련 질문 (inner join, left join)
1
103
2
배치에서 full outer join을 쓴다고 하셨는데 예시를 알 수 있을까요?
0
93
2
Madrid에 살고 있는 고객이 주문한 주문 정보를 구할것. 실습 질문드립니다
0
55
2
rollup시 null값 매출 라벨링
0
56
2
10. 조인 실습 - 02 관련 질문
0
62
1
조인실습03 - join의 pk-fk join
0
111
2
조인실습03 - join의 pk-fk join
0
71
2
(공유)맥, 스키마 import
0
82
2
sql 입문자인데, 이 강의와 sql 코딩테스트와 연관이 있을까요?
0
139
2
1인지 M인지는 결국엔 테이블을 직접 확인을 해야 하는걸까요?
0
134
2
안녕하세요. 튜닝핵심가이드강의 관련해서 여쭤보고 싶어서 남깁니다.
0
93
1
섹션5 Group by 실습-01 강의 예제 질문
0
122
2
섹션2 조인 기반 메커니즘에서 조인 실습 - 04 강의 예제 질문
0
125
2
섹션2 조인 실습 01 강의 질문
0
136
2
lead lag 이해 강의에서 윈도우 절은 사용되지 않습니다.
0
129
1
Dbeaver오류
0
636
2
직원 별 가장 높은 매출
0
119
1
강의순서대로 실습코드순알려주세요.
0
134
1
m:n inner join일 경우 cross조인과 동일하게 동작되는건가요?
0
132
1
rollup
0
91
2





