计算组并仅显示具有2个或更多结果的组

时间:2013-11-17 23:57:41

标签: sql sql-server

我有以下查询:

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

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