我有两张桌子-选票和污点。
投票有一个name、time和like/dislike参数作为表列。污渍只是人们投票支持的一些标签。他们有一个分数(喜欢减去不喜欢)和票数作为字段。
我整理了一个查询来查找趋势污点-
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
这显然是错误的。它发现那些在上周有更多选票和至少一张选票的污点。我想要的是找到那些在上周有更多选票的人。希望有意义。谢谢您。
最佳答案
有时候写一个问题很有帮助。我知道我需要使用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/