• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

row_number

22.12.17 18:19 작성 조회수 224

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

상품별 매출 랭킹(카테고리별)이 내림차순으로 나와야 하는데 왜 매출 수치랑 랭킹이 맞지 않을까요.. 대체 어디가 틀린 걸까요ㅠㅠ

with c as (select b.category_id, a.product_id, sum(a.amount) sum_amt from order_items a

join products b on a.product_id = b.product_id

group by a.product_id, b.category_id

order by b.category_id, a.product_id

)

select category_id, product_id, sum_amt,

sum(sum_amt) over (partition by category_id) sum_category,

row_number() over(partition by category_id order by sum_amt desc) as rank_sum

from c

group by category_id, product_id, sum_amt

 

답변 1

답변을 작성해보세요.

0

안녕하십니까,

질문을 이해하지 못하겠군요.

뭐가 어떻게 나와야 하는 건지요?

암튼 제가 수행해 보면 category_id별로 sum_amt가 내림차순으로 rank_sum과 동일하게 나옵니다.

그리고 마지막 group by category_id, product_id, sum_amt 은 제외하는 게 좋을 것 같습니다.

원하시는 답이 아니면 다시 말씀해 주십시요.

ajh7457님의 프로필

ajh7457

질문자

2022.12.18

마지막 줄은 왜 제외해야 할까요?

이미 categry_id, product_id로 unique한데 또 group by category_id, product_id, sum_amt 하실 필요 없을 것 같습니다. 빼도 결과는 동일할 겁니다.