728x90
반응형
Ollivander's Inventory
- 최대한.. 써보았으나 역시 굴러가지 않는 내 코드 ㅠ
- min(coins_needed)도 따로 빼라고 하는데.. 왜지..
자꾸 여기서 헷갈린다. 조건이니깐, 그런건지..
그냥 셀렉트에서 하면 왜 안되는 건지..
- 적용 순서 때문인 것 같기도 하고
==> 지피티 답
단순히 SELECT를 사용하면, MySQL은 그룹화 기준에 포함되지 않은 열들에 대해 어떤 값을 선택할지 보장하지 않습니다.
- 나는 그냥 age만 group by를 사용했는데 이렇게 하면, 나머지는 포함되지 않고 어떻게 선택될지 보장이 안 되기 때문에 서브쿼리로
넣어서 확실하게 적용되도록.. 하는 거래.. 각 age별로 가장 작은 coin_needed를 계산해야 하니깐.
수정 전
select w.id, w_p.age, min(w.coins_needed), w.power
from wands w
join wands_property w_p using(code)
where w_p.is_evil = 0
group by w_p.age -- 이러면 그룹바이랑 min이랑 헷갈린 거 같다고 지피티가 뭐라고 함..
order by w.power desc, w_p.age desc;
수정 후
- 굳이 그룹바이를 쓰지 않고 어차피.. 코인이 가장 적게 필요한 얘들 중에서
age와 power가 같은 거니깐..
- 이게 생각을 하는 방식이 아직 컴퓨터화가 되지 못한 느낌임..
select w.id, w_p.age, w.coins_needed, w.power
from wands w
join wands_property w_p using(code)
where w_p.is_evil = 0
and w.coins_needed = (
select min(w1.coins_needed)
from wands w1
join wands_property w_p1 using(code)
where w_p1.age = w_p.age -- 코인을 적게 사용하는 값과 같은 age -> 굳이 그룹바이 x
and w1.power = w.power -- 마찬가지로 같은 power인 경우
)
order by w.power desc, w_p.age desc;
728x90
반응형
'Data Science > MySQL' 카테고리의 다른 글
[HackerRank sql] where절과 from절 서브쿼리 차이 (0) | 2025.01.28 |
---|---|
[HackerRank sql] 집계함수 내에도 필요하면 distinct 쓸 것. (0) | 2025.01.26 |
[HackerRank sql] join 동시에 여러 개, 집계 함수 위치 (0) | 2025.01.25 |
[HackerRank sql] join between and를 써서 (0) | 2025.01.25 |
[HackerRank sql] 중간값 구하기. cte (0) | 2025.01.25 |