我有两张桌子 - 票和污点。 投票具有名称,时间和喜欢/不喜欢参数作为表列。 Blotes只是人们投票的一些标签。他们有分数(喜欢减去不喜欢)和number_of_votes作为字段。
我整理了一个查询来查找趋势污点 -
SELECT name, number_of_votes, score FROM `vote`
INNER JOIN `blote` ON vote.name=blote.name
WHERE UNIX_TIMESTAMP(now()) - `time` < 60*60*24*7
GROUP BY vote.name
ORDER BY blote.number_of_votes DESC
LIMIT 25
这显然是错的。它找到了那些在上周拥有更多选票和至少一票的Blotes。我想要的是找到那些在上周有更多选票的人。希望它有意义。谢谢。
答案 0 :(得分:1)
有时写一个问题会有很大帮助。我知道我需要使用count(),在提交问题后的几分钟,我看到了怎么做。
这是:
SELECT count(time), blote.name, number_of_votes, score FROM `vote`
INNER JOIN `blote` ON vote.name=blote.name
WHERE UNIX_TIMESTAMP(now()) - `time` < 60*60*24*7
GROUP BY vote.name
ORDER BY count(time) DESC
LIMIT 25
如何改进此查询?