我有以下查询:
SELECT COUNT(*) as cnt, title
FROM [Scyk].[dbo].[Threads]
where cnt > 1
group by Title
此查询错误但我不知道如何修复它,如何仅显示2个或更多的组?我正在使用MS SQL
更新:如果我还要计算群组,我该怎么做?我做了类似这样的事情,但它不起作用:
select COUNT(*)
from
(SELECT COUNT(*) as cnt, title FROM [Scyk].[dbo].[Threads] group by Title having COUNT(*) > 0)
where cnt = 2
答案 0 :(得分:3)
SELECT COUNT(*) as cnt, title
FROM [Scyk].[dbo].[Threads]
group by Title
HAVING COUNT(*) > 1
Where子句筛选结果在对行进行任何聚合之前。在聚合之后有过滤器行。此外,你不能在有条款的情况下使用别名,你必须使用实际的功能
的 Eidt 强>
为了您的下一个查询,您的子查询缺少别名,其余的看起来很好
select COUNT(*)
from
(SELECT COUNT(*) as cnt, title
FROM [Scyk].[dbo].[Threads]
group by Title
having COUNT(*) > 0) q
where cnt = 2
答案 1 :(得分:2)
您需要使用Having关键字:
所以你的查询看起来像是:
SELECT COUNT(*) as cnt, title
FROM [Scyk].[dbo].[Threads]
where cnt > 1
group by Title
having count(*) > 1