我有两个表 - 选票和污点。 投票有名称、时间和喜欢/不喜欢参数作为表格列。 Blotes 只是人们投票选出的一些标签。他们有一个分数(喜欢减去不喜欢)和 number_of_votes 作为字段。
我整理了一个查询来查找趋势 Blob -
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。我想要的是找到那些在上周获得更多选票的人。希望这是有道理的。谢谢。
最佳答案
有时候写一个问题会有很大帮助。我知道我需要使用 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
有什么方法可以改进这个查询吗?
关于mysql - 用于查找趋势的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5505452/