• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

Ollivander's Inventory 윈도우 함수 min() over

23.07.23 17:44 작성 조회수 178

0

 

SELECT id, age, min_coins, power
  FROM
    (SELECT W.id, WP.age, W.coins_needed, W.power
     , MIN(W.coins_needed) OVER(PARTITION BY age, power ORDER BY coins_needed) min_coins
  FROM Wands W INNER JOIN Wands_Property WP ON W.code = WP.code
 WHERE WP.is_evil = 0) sub
ORDER BY power DESC, age DESC

 

 

MIN() OVER(PARTITION BY) 로는 문제 못 푸나요??
푸는 방법 알려줄 수있나요??

중복된 power가 많이 나와요 ㅠㅠㅠ

 

답변 1

답변을 작성해보세요.

1

coins_needed가 age와 power 기준으로 묶은 각 그룹의 최소값과 일치하는 경우의 데이터만 조회해야하는데, 작성하신 쿼리로는 모든 데이터가 조회됩니다.

아래와 같이 WHERE 절 조건을 추가해야합니다.

SELECT id, age, min_coins, power
  FROM
    (SELECT W.id, WP.age, W.coins_needed, W.power
     , MIN(W.coins_needed) OVER(PARTITION BY age, power ORDER BY coins_needed) min_coins
     FROM Wands W INNER JOIN Wands_Property WP ON W.code = WP.code
     WHERE WP.is_evil = 0) sub
WHERE coins_needed = min_coins
ORDER BY power DESC, age DESC
M `님의 프로필

M `

질문자

2023.07.25

감사합니다.

제가 놓치고 모르는 부분이 많네요 ㅠㅠ

성장통을 느끼고 있나봐요 ㅠㅠ

너무 어렵네요 ㅠㅠ