2012-02-16 65 views
1

即时贴在这里,我不知道如何解决它。子查询中的错误

我有一个数据库表,其中有用户ID,用户等级和日期时,有人已经投票给该用户(3字段)。

我试图读取具有最高的平均成绩为今天的日期,限于一个用户。 但问题是,我只想阅读5票以上的用户。

我的查询看起来是这样,但即时得到一个错误:

SELECT 
    idusers, 
    AVG(votes) AS Grade 
    FROM rank 
    WHERE (data = '{$dbDate}') 
    AND ((SELECT count(ID) + 1 FROM rank) AS tmpcount WHERE tmpcount>4) 
    GROUP BY idusers 
    ORDER BY Grade DESC 
    LIMIT 1 

没有tmpcount>4子句此查询工作正常,但我需要算标识的。

+0

请选择您问题的一个更好的标题。 – 2012-02-16 18:58:22

回答

7

你必须使用HAVING过滤结果的汇总值,如COUNTSUMMINMAXAVG,...)设置:

SELECT idusers, AVG(votes) AS Grade 
FROM rank 
WHERE (data = '{$dbDate}') 
GROUP BY idusers 
HAVING COUNT(*) > 4 
ORDER BY Grade DESC 
LIMIT 1 
+0

感谢@ knittl它的工作... – user994461 2012-02-16 19:05:43