朱莉娅让她的学生创造一些编码挑战。编写一个查询,以打印hacker_id、名称和每个学生创建的挑战总数。将结果按挑战总数按降序排序。如果不止一个学生创造了相同数量的挑战,那么按hacker_id对结果进行排序。如果多个学生创建了相同数量的挑战,且数量少于所创建的最大挑战数,则将这些学生排除在结果之外。
输入格式
下表载有质疑数据:
黑客: hacker_id是黑客的id,名字是黑客的名字。黑客表
挑战: challenge_id是挑战的id,hacker_id是发起挑战的学生的id。挑战表
这是我写的查询
select H.hacker_id,H.name,T.challenges_created
from Hackers H join
(SELECT hacker_id ,
COUNT(Challeneges.challenge_id) as challenges_created
FROM Challenges
GROUP BY hacker_id
HAVING challenges_created >= max(challenges_created)
) T
on H.hacker_id=T.hacker_id
ORDER BY T.challenges_created desc, H.hacker_id asc 但我说错了
Msg 207,级别16,State 1,Server WIN-ILO9GLLB9J0,第12行无效列名“column _created”。Msg 207,级别16,State 1,Server WIN-ILO9GLLB9J0,第12行无效列名“column _created”。Msg 4104,级别16,状态1,服务器WIN-ILO9GLLB9J0,第9行多部分标识符"Challeneges.challenge_id“无法绑定。
发布于 2017-03-14 01:32:29
Line 9 The multi-part identifier "Challeneges.challenge_id" could not be bound.看来你把Challenges拼错了。
发布于 2020-05-18 07:22:59
select C.Hacker_id, H.Name, count(challenge_id)
from Hackers H Inner Join Challenges C
ON H.Hacker_Id = C.Hacker_Id
group by C.Hacker_Id, H.Name
having count(challenge_id) not in (select x.ChallengeCount from (
select C.Hacker_id, H.Name, count(challenge_id) as ChallengeCount
from Hackers H Inner Join Challenges C
ON H.Hacker_Id = C.Hacker_Id
group by C.Hacker_Id, H.Name
) x
where x.ChallengeCount <> (select top 1 count(challenge_id) from Challenges group by hacker_Id order by 1 desc)
group by x.ChallengeCount
having count(x.challengecount) > 1)
order by 3 desc, 1发布于 2021-01-05 06:51:12
从黑客中选择c.hacker_id,h.name,COUNT(c.challenge_id)作为cnt,挑战c,h.hacker_id = c.hacker_id组,h.name拥有计数(c.challenge_id)=(从挑战c1组中选择最大计数(计数(c1.challenge_id))或非cnt计数(c.challenge_id)(从挑战c.challenge_id组中选择计数(c2.challenge_id),从挑战c2组( c2.hacker_id BY c2.hacker_id <> c.hacker_id)选择计数(c2.challenge_id)),按cnt DESC,c.hacker_id排序;
https://stackoverflow.com/questions/42776304
复制相似问题