SQL/HackerRank
[MySQL/HackerRank] Ollivander's Inventory 문제풀이
레아킴
2022. 5. 22. 00:29
반응형
https://www.hackerrank.com/challenges/harry-potter-and-wands/problem
Ollivander's Inventory | HackerRank
Help pick out Ron's new wand.
www.hackerrank.com
생각보다 문제가 복잡하고 어려웠다.
일단, 먼저 문제를 정리를 해보면
- is_evil = 0이어야 한다.
- age 와 power가 같은 것들 중에 가장 coin_needed가 작은 wand를 골라야한다.
SELECT W.id,
P.age,
W.coins_needed,
W.power
FROM Wands W
INNER JOIN Wands_Property P ON W.code = P.code
WHERE P.is_evil = 0
AND W.coins_needed = (SELECT MIN(W1.coins_needed)
FROM Wands W1
INNER JOIN Wands_Property P1 ON W1.code = P1.code
WHERE P1.is_evil = 0
AND W1.power = W.power
AND P1.age = P.age)
ORDER BY W.power DESC, P.age DESC
WHERE절에 서브쿼리는 넣는 방식으로 풀었다.
WHERE 절에서 메인 쿼리절과 age와 power가 같은 데이터에 매핑 되도록 조인을 해서 가장 coins_needed가 작은 데이터와 같도록 조건을 주었다.
반응형