我被困在这里,我不知道如何解决它.
我有一个数据库表,当有人投票给该用户时,它有用户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.
你必须使用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)
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |