작성
·
276
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
감사합니다.
제가 놓치고 모르는 부분이 많네요 ㅠㅠ
성장통을 느끼고 있나봐요 ㅠㅠ
너무 어렵네요 ㅠㅠ