-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
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
지식공유자 J
지식공유자2023.07.24
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
답변 1