子查询错误

use*_*461 1 mysql

我被困在这里,我不知道如何解决它.

我有一个数据库表,当有人投票给该用户时,它有用户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
Run Code Online (Sandbox Code Playgroud)

没有该tmpcount>4子句这个查询工作正常,但我需要计算Id.

kni*_*ttl 7

你必须使用HAVING过滤结果汇总的值,如设置COUNT(SUM,MIN,MAX,AVG,...):

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