2011-12-28 82 views

回答

8

集料不能用于WHERE,而是在HAVING。你将需要添加一个GROUP BY子句。

SELECT 
    title, 
    company_id, 
    count(id) as count 
FROM 
    table 
GROUP BY title, company_id 
HAVING count > 5 
5

您可以使用having子句,如果你想与聚合函数工作作为解释here

HAVING子句被添加到SQL中,因为WHERE关键字不能用于聚合函数。

SELECT 
    title, 
    company_id, 
    count(id) as count 
FROM 
    table 
GROUP BY 
    title, company_id 
HAVING 
    count > 5 

UPDATE: 在这种情况下,你必须使用HAVING条款,但我想指出一点用HAVING条款时,要牢记。 MySQL documentation指出:

HAVING子句几乎是最后一次应用,就在项目发送给客户端之前,没有进行优化。 (LIMIT是具有后使用。)

所以,作为同一文档中所述:

不要使用具有的项目应该是在WHERE子句中。

1

您不能在聚合列上使用WHERE

试试这个:

SELECT 
     title, 
     company_id, 
     count(id) as cnt 
    FROM 
     table 
    GROUP BY title, company_id 
    HAVING 
     cnt > 5 
相关问题