这是我的代码:
select
h.hacker_id, h.name,
count(c.challenge_id) as num
from
Hackers as h
join
challenges as c on h.hacker_id = c.hacker_id
where
num = max(num)
group by
h.hacker_id, h.name
order by
count(c.challenge_id) desc
我只想过滤掉其他结果并保留最大计数的结果,但在WHERE
子句中出现错误:
消息 207,级别 16,状态 1,服务器 WIN-ILO9GLLB9J0,第 9 行
无效的列名“num”
请帮忙
我只想过滤其他结果并留下最大计数的结果,
我确实怀疑你真的想要TOP (1) WITH TIES
:
select top (1) with ties
h.hacker_id,
h.name,
count(c.challenge_id) as num
from Hackers as h
join challenges as c on h.hacker_id = c.hacker_id
group by h.hacker_id, h.name
order by num desc
这将为您提供计数最高的记录。如果存在顶级关系,它们都将显示在结果集中。
注意:正如您在此查询中看到的,您可以在order by
子句中使用列别名(与where
子句不同)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句