inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

[심화] 서브쿼리 해커랭크 Challenges 문제소개

Challenges 질문입니다.

226

kimmoohyeon

작성한 질문수 2

1

SELECT H.hacker_id as hacker_id ,H.name as name ,COUNT(challenge_id) AS challenges_created

FROM Hackers AS H 

INNER JOIN Challenges AS C ON H.hacker_id = C.hacker_id

GROUP BY hacker_id,H.name

HAVING COUNT(challenge_id) = (SELECT count(challenge_id) 

    FROM Challenges 

    GROUP BY hacker_id

    ORDER BY count(challenge_id) DESC

    Limit 1)

    OR 

    COUNT(challenge_id) IN (( 

        SELECT small.number 

        FROM(

              SELECT count(C.challenge_id) as number , H.name as name

              FROM Hackers as H

              INNER JOIN Challenges AS C ON H.hacker_id = C.hacker_id

              GROUP BY H.name,H.hacker_id

                 ) AS small

        GROUP BY small.number

        HAVING count(small.name) =1 ))

    

ORDER BY COUNT(challenge_id) DESC,hacker_id

-----------------------------------------

 OR 

    COUNT(challenge_id) IN (( 

        SELECT small.number 

        FROM(

              SELECT count(C.challenge_id) as number , H.name as name

              FROM Hackers as H

              INNER JOIN Challenges AS C ON H.hacker_id = C.hacker_id

              GROUP BY H.name,H.hacker_id

                 ) AS small

        GROUP BY small.number

        HAVING count(small.name) =1 ))

이 부분에서 값을 받아오지 못하는데 잘 모르겠습니다. 

sql

답변 3

1

송혜정

안녕하세요 kimmoohyeon님, 답변드립니다.

말씀해주신 내용을 확인해보니, COUNT(challenge_id) 로 적어주신 코드는 표준 문법에 어긋 나지 않으며, mysql 인터프리터가 아닌 ms sql 인터프리터에서는 정상적으로 실행이 되고 있습니다. mysql 자체의 문제인지 혹은 해커랭크 mysql 인터프리터의 버그인지는 알 수 없으나, 처음 적어주신 코드도 문법적으로는 오류가 없음을 말씀드립니다. (참고: [MySQL Tutorial] MySQL HAVING)

답변이 도움이 되었길 바라며, 추가로 궁금한 점이 있으실 경우 언제든 문의 남겨주세요 :)

0

kimmoohyeon

SELECT H.hacker_id as hacker_id ,H.name as name ,COUNT(challenge_id) AS challenges_created

FROM Hackers AS H 

INNER JOIN Challenges AS C ON H.hacker_id = C.hacker_id

GROUP BY hacker_id,H.name

HAVING COUNT(challenge_id) = (SELECT count(challenge_id) 

    FROM Challenges 

    GROUP BY hacker_id

    ORDER BY count(challenge_id) DESC

    Limit 1)

    OR  /* COUNT(challenge_id)  -> challenges_created 하면 해결*/

    COUNT(challenge_id) IN (( 

        SELECT small.number 

        FROM(

              SELECT count(C.challenge_id) as number , H.name as name

              FROM Hackers as H

              INNER JOIN Challenges AS C ON H.hacker_id = C.hacker_id

              GROUP BY H.name,H.hacker_id

                 ) AS small

        GROUP BY small.number

        HAVING count(small.name) =1 ))

    

ORDER BY COUNT(challenge_id) DESC,hacker_id

----------------------------------

이 부분이 문제였는데 무슨 차이인가요 ??

OR  /* COUNT(challenge_id)  -> challenges_created 하면 해결*/

    COUNT(challenge_id) IN (( 

        SELECT small.number 

        FROM(

              SELECT count(C.challenge_id) as number , H.name as name

              FROM Hackers as H

              INNER JOIN Challenges AS C ON H.hacker_id = C.hacker_id

              GROUP BY H.name,H.hacker_id

                 ) AS small

        GROUP BY small.number

        HAVING count(small.name) =1 ))

    

ORDER BY COUNT(challenge_id) DESC,hacker_id

0

송혜정

안녕하세요 kimmoohyeon님,

작성하신 쿼리에서 어떤 결과를 예상하셨으며, 실제로 나온 결과는 어땠는 지 알 수 있을까요?

순위 함수 연습 문제 - 스테디셀러 작가 찾기

0

85

1

문제 내용이 잘못된 것 같습니다.

0

57

2

서브쿼리 질문

0

59

2

[수업질문] 서브쿼리 > null데이터 avg사용 주의

0

72

1

서브쿼리는 언제 작성하는건가요?

0

67

1

안녕하세요 질문드립니다.

0

66

2

Top Earners 문제관련 질문

0

96

2

고급반 cheetsheet

0

146

2

196. Delete Duplicate Emails 좋은 코드 질문

0

140

1

a.id = 1과 b.id=1이 없어도 되는 이유

0

125

0

강의 플랫폼

0

197

3

리트코드 177번 function 풀이중 case when 활용을 위한 서브쿼리 구문을 제출 시 검증에 통과되지 않도록 보강된 듯 하네요

0

204

2

ERD 읽는법에 추가 질문 있어요

0

249

1

lead, lag로 풀이할 시 id 값이 존재하지 않는 경우의 오답

0

355

2

사용자정의함수

0

230

1

이 문제 inner join이 이해가 안됩니다.

0

294

1

평균 함수 사용할 때 주의점과 해결법

0

259

1

196. subquery로 풀 때, 궁금한 점

0

382

2

쿼리성능 질문드립니다.

0

312

1

리트코드 highest department salary 문제

0

257

2

The report 문제 order by부분 질문

0

269

2

리트코드 서브쿼리 문제 질문

0

420

1

DEPARTMENT HIGHEST SALARY 서브쿼리 문제 문의

0

235

1

서브쿼리의 활용사례 및 조인관련질문

0

282

1