inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이

1번 문제 풀이

제가 풀어본 Ollivander's Inventory 문제 틀린 이유 알고 싶습니다.

210

리나

작성한 질문수 77

2

SELECT w.id, wp.age, w.coins_needed, w.power
FROM Wands AS w
INNER JOIN Wands_Property AS wp
ON (w.code = wp.code)
INNER JOIN (
    SELECT id, MIN(coins_needed)
    FROM Wands
    GROUP BY id, code, power
) AS T
ON (w.id = T.id)
WHERE wp.is_evil = 0
ORDER BY w.power DESC, wp.age DESC

이 SQL은 왜 틀린건가요?

출력은 되긴 하지만

틀리다고 나오네요.

조인 중에서

INNER JOIN (

    SELECT id, MIN(coins_needed)

    FROM Wands

    GROUP BY id, code, power

) AS T

이부분이 핵심인데요. 결국 GROUP BY 를 

id, code, power를 하나 code, power를 하나 같지 않는건가요?

결국 해당 GROUP BY 를 해서 coins_needed가 가장 작은 액수만 출력하게 했고

그것을 전체 출력해서 INNER JOIN통해 필터링 하는 전략을 세워보았습니다.

이론상 틀리지 않아 보이는데... 제 주관적인 생각입니다 ㅠㅠ

이유가 무엇일까요?

sql

답변 1

2

지식공유자 J

ID는 지팡이 하나 당 하나씩 고유하게 부여되는 값으로 서로 같은 ID를 갖는 지팡이는 없습니다. code와 power가 똑같은 지팡이끼리도 서로 다른 ID를 갖고 있어요. 
ID를 기준으로 그룹을 나눈다면 지팡이 수만큼의 그룹이 나올 것이고, 각 그룹 안에서 집계를 하게 됩니다. 데이터가 하나 밖에 없으니 어떤 집계를 하더라도 같은 결과(해당 데이터 값)가 나오겠죠. 그러므로 GROUP BY 절에는 ID를 포함시키지 않아야 합니다. 

강의기간 연장문의

0

95

2

HackerRank : Weather Observation Station 11 문제풀이

0

115

1

SET4의 3번 자리바꾸기 문제 다른 풀이

0

185

1

set 3의 3번 문제- 데이터의 개수가 짝수일 때 질문

0

262

2

set 1 - 2번 문제풀이

0

257

1

세트2번 Binary Tree Nodes 질문입니다!

0

224

2

고급문제풀이set1 3번 문제

0

248

2

고급문제풀이 3번 INNERJOIN 활용시 오류

0

268

1

회사일하다 보니까 다 못듣고 수강기간이 다끝나가는데 .,. 수강기간 연장은 어떻게 할수 있나요?ㅜㅜ

0

319

1

[Weather 20 ] 2번째 쿼리도 따라 했는데 왜 다 실패일까요?

0

371

1

[Weather 20] 따라 했는데 왜 작동 안해요?

0

273

1

weather-20 왜 작동 안하는건가요?

0

225

1

Ollivander's Inventory 윈도우 함수 min() over

0

309

1

LeetCode 626. Exchange Seats 리트코드 제출 오류

0

505

2

섹션4에 3번 문제풀이 질문

0

375

2

SQL Project Planning 풀이 관련 문의

0

579

2

섹션 1번 4번문제 풀이

1

282

1

섹션1 2번 문제풀이 강의

0

300

1

set2 - 1 같게 작성했는데 답이 이상합니다.

0

284

1

max함수를 써서 풀지는 못하나요?

0

296

1

윈도우 함수를 이용해서 풀고 싶어서 써봤습니다. 더 간단하게 줄일 수 있을까요?

0

256

1

(Hacker Rank)Binary Tree 문제 질문

0

325

1

쿼리 두개로 작성하고 싶지 않아 하나로 어떻게든 만들어 봤습니다.

0

290

1

이런 풀이는 왜 안되는지 궁금해요

0

271

1