查询趋势的SQL查询

时间:2011-03-31 19:47:04

标签: mysql sql inner-join

我有两张桌子 - 票和污点。 投票具有名称,时间和喜欢/不喜欢参数作为表列。 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。我想要的是找到那些在上周有更多选票的人。希望它有意义。谢谢。

1 个答案:

答案 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

如何改进此查询?