下面的问题是基于hackerrank的问题。其内容如下:
茱莉亚要求她的学生创造一些编码挑战。编写一个查询,打印黑客id、姓名和每个学生创建的挑战总数。按挑战总数降序排列结果。如果多个学生创建了相同数量的挑战,则按黑客id对结果进行排序。如果多个学生创建了相同数量的挑战,且计数小于创建的最大挑战数,则将这些学生排除在结果之外。
在质询中,我提交了以下内容,但由于某种原因出现了语法错误。有什么问题?
select h.hacker_id
, h.name
, count(c.challenge_id) count1
from hackers h
join challenges c
on c.hacker_id = h.hacker_id
where h.hacker_id not in
(select hh.hacker_id
from hackers hh
join challenges cc
on cc.hacker_id = hh.hacker_id
join
( select hhh.hacker_id
, count(ccc.challenge_id) count2
from hackers hhh
join challenges ccc
on ccc.hacker_id = hhh.hacker_id
group
by hhh.hacker_id
having count(ccc.challenge_id) <
(select max(count2)
from
( select count(cc.challenge_id) count2
from hackers hh
join challenges cc
on hh.hacker_id = cc.hacker_id
) a
) b
) t
on t.hacker_id <> hh.hacker_id
) c
group
by h.hacker_id
, h.name
order
by count(c.challenge_id)
, h.hacker_id desc
1条答案
按热度按时间c90pui9n1#
我不能评论以下内容的有效性,但它至少在语法上是有效的。。。