2012-02-16 69 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