2010-12-16 116 views
0

我想只选择类别ID,其中分配给该类别的文章数量超过3个。使用COUNT(id)作为条件的条件SELECT COUNT(id)?

我已经尝试了各种排列并发布了下面的一个,我觉得最清楚的解释了我在尝试尽管我有一种感觉,我需要使用嵌套的SELECT。我试过嵌套的SELECTs,但没有成功。

SELECT categoryID, COUNT(articleID) AS numArticles 
FROM articles GROUP BY categoryID WHERE numArticles > 3 

回答

6

使用having

SELECT categoryID, COUNT(articleID) AS numArticles 
FROM articles GROUP BY categoryID HAVING COUNT(articleID) > 3 
4
SELECT categoryID, COUNT(articleID) AS numArticles 
FROM articles GROUP BY categoryID 
HAVING COUNT(articleID) > 3 
+0

HAVING是关键,但你的例子给出了错误, “无效的列名称numArticles'”。 – Kalessin 2010-12-16 12:55:27

+0

对不起,不习惯mssql语法。 – Femaref 2010-12-16 13:03:53

2

您需要使用Having条款

Select CategoryId, Count(ArticleId) as numArticles 
From dbo.Articles 
Group By CategoryId 
Having Count(ArticleId) > 3 
2

使用HAVING条款:

SELECT categoryID, COUNT(articleID) AS numArticles 
FROM articles 
GROUP BY categoryID 
HAVING COUNT(articleID) > 3 

MSDN

指定组或聚合的搜索条件。 HAVING只能用于SELECT语句。 HAVING通常用在GROUP BY子句中。当不使用GROUP BY时,HAVING的行为如同WHERE子句。

0

对于这个不使用WHERE,你必须使用HAVING来代替。

试试这个:

SELECT categoryID, COUNT(articleID) AS numArticles 
FROM articles GROUP BY categoryID HAVING numArticles > 3