일부 문제가 발생합니다. 문제는 해커와 챌린지라는 두 개의 테이블을 가지고 있습니다. 나는 hacker_id, 이름을 인쇄 할 쿼리를 작성하는 것을 시도하고있다MySQL : 지정된 조건에 따라 일부 결과를 제외하려면
Hackers(hacker_id: int, name string)
Challenges(challenge_id: int, hacker_id int)
, 각 학생이 만든 문제의 총 수 : 다음은 스키마입니다. 도전 과제의 총 수를 내림차순으로 정렬하십시오. 두 명 이상의 학생이 같은 수의 도전 과제를 만든 경우 hacker_id로 결과를 정렬합니다. 둘 이상의 학생이 동일한 수의 도전 과제를 생성하고 그 횟수가 생성 된 도전 과제의 최대 수보다 적 으면 결과에서 해당 학생을 제외시킵니다.
select hackers.hacker_id ,
hackers.name ,
count(challenges.challenge_id) as challenges_created
from
hackers left join challenges
on
hackers.hacker_id = challenges.hacker_id
having
count(challenges_created) >= max(challenges_created)
order by challenges_created desc, hackers.hacker_id asc
내가 잘못 출력을 얻고있다 :
여기 내 쿼리입니다! 내가 잘못되고있는 곳을 말해주세요!
샘플 입력 :
해커 테이블 : image 도전자 테이블 : image
Sample Output:
21283 Angela 6
88255 Patrick 5
96196 Lisa 1
'> = max'는별로 의미가 없습니다. 정의에 따르면 max()는 집합에서 가장 큰 값을 반환하므로 다른 값이이 값보다 큰 값일 수는 없습니다. –
그래서 2보다 크지 만 최대 값보다 작은 항목 (질문의 마지막 줄)을 제외하려면 –
적어도 일관된 문장을 만드십시오. Sort * your * results ... : 학생 운동. 해커 표 : – DenisGL