2011-03-31 116 views
1

我有兩張表 - 投票和blots。 投票有一個名稱,時間和喜歡/不喜歡參數表列。 Blotes只是人們投票選出的一些標籤。他們有一個分數(喜歡減去不喜歡)和number_of_votes作爲領域。SQL查詢找到趨勢

我放在一起查詢發現趨勢blotes -

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

有時,寫一個問題有很多幫助。我知道我需要使用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 

改善查詢什麼辦法?