inflearn logo
강의

Course

Instructor

[A hundred words are not as good as seeing once] Intermediate SQL problem solving for data analysis

Top Competitors 질문있습니다 ㅠㅠ

239

co choi

37 asked

0

select H.hacker_id, h.name

    from hackers as h

    inner join Challenges as c on h.hacker_id = c.hacker_id

    inner join Difficulty as d on c.Difficulty_level = d.Difficulty_level

    inner join submissions as S on C.Challenge_id = S.Challenge_id

    where d.Difficulty_level = c.Difficulty_level

    group by H.hacker_id, h.name

    having count(H.hacker_id) > 1

    order by count(H.hacker_id) desc, h.hacker_id

 

이런식으로 코드를 짰는데 답이 계속 다르게 나오네요 조인 순서에 문제가 있는건지 뭐가 문제인건지를 잘모르겠습니다 ㅠㅠ

선생님과 다르게 코드를 다르게 짠 부분은 저는 hackers 테이블에서 challenges 그다음 difficulty  그다음 submission  으로 조인했다는 점인데 뭐가 문제일까요??

sql

Answer 1

1

jaemin

JOIN 절 :
challenges 테이블의 hacker_id는 challenge를 만든 사람의 id, submissions 테이블의 hacker_id는 challenge의 답안을 제출한 사람의 id로 서로 의미하는 바가 다릅니다.
문제에서 요구하는 바는 답안 제출(submission)자의 id와 이름이므로 hackers 테이블의 hacker_id를 challeges가 아니라 submissions의 hacker_id와의 조인 키로 사용하셔야 합니다.

 

WHERE 절 :
where d.Difficulty_level = c.Difficulty_level 는 조인을 할 때 이미 써 준 조건이므로 다시 쓸 필요가 없으며, 이렇게 조인을 하는 이유는 difficulty 테이블로부터 해당 레벨의 만점(full score)이 몇 점인지를 알아내기 위함입니다.
만점을 다 맞은 사람만 뽑아내야 하므로 WHERE s.score = d.score 조건이 있어야 합니다.

섹션 4번에 2번 문제 질문입니다.

0

100

2

4번 문제

0

78

1

Top competitors 에서 having count(h.hacker_id)로 해도 되나요?

0

255

1

leetcode 620 group by 질문이요

0

198

2

강의 일시정지/ 기간연장 검토 요청

0

376

1

4번 문제 group by 질문

0

315

2

세트2 4번 문제풀이 해설에 관한 질문

0

346

2

Weather Observation Station 11_ not like 사용

0

263

1

Placements에서 LEFT JOIN 뒤에 ON 조건

0

279

1

Set2 4번문제 질문 - New Companies

0

312

1

WHERE절 안 쓰고 HAVING COUNT(D.score = S.score) > 1 쓰면 왜 안되나요?

-1

698

1

as 2 space-separated values. 무슨 말인가요???

0

426

1

Weather observation Station 11 관련 질문

1

368

2

4번문제풀이

0

449

1

섹션3. Weather Observation Station 18 문제 관련

0

367

2

섹션 2에 1,2번 문제풀이 관하여

0

427

1

기한연장문의

0

326

1

Weather observation station 11 문제 not like

-1

358

1

inner join 과 left join

1

591

1

4번 BST 문제 틀리는 이유

0

337

1

4번 문제 질문

0

285

1

620. Not Boring Movies 문제 질문드립니다

0

279

1

binary tree 질문 입니다.

0

292

1

set4. 4번

0

314

1