SQL/HackerRank

[해커랭크 medium] Ollivander's Inventory(MySQL)

강떡볶 2022. 3. 26. 16:33

https://www.hackerrank.com/challenges/harry-potter-and-wands/problem?isFullScreen=true 

 

Ollivander's Inventory | HackerRank

Help pick out Ron's new wand.

www.hackerrank.com

 

해리포터 어쩌구.. 하는 문제

나 해리포터 안봐서 이름이 뭐라 뭐라 나오니까 괜히 더 헷갈렸다 ㅋㅋㅋㅋ

 

select distinct w1.id, p1.age, w1.coins_needed, w1.power
from wands w1
join wands_property p1
on w1.code = p1.code
where w1.coins_needed in (select min(w.coins_needed) min_coins
                            from wands w
                            join wands_property p
                            on w.code = p.code
                            where p.is_evil = 0
                            and w1.power = w.power and p1.age = p.age
                            group by p.age, w.power)
order by w1.power desc, p1.age desc

 

일단 코드는 이렇다!!

이 문제에서 배운 점은 where절 서브 쿼리 안에 w1.power = w.power and p1.age = p.age 부분이다!

서브 쿼리 내의 테이블의 컬럼과 서브 쿼리 밖에 있는 테이블의 컬럼이 서로 같다는 조건을 서브 쿼리 안에다 쓸 수 있다는 게 신박하다.

 

잘 기억해서 나중에 응용해야겠다 ㅎㅎ