SQL-запрос для поиска тенденций - PullRequest
1 голос
/ 31 марта 2011

У меня есть две таблицы - голоса и блоты.Голоса имеют имя, время и параметр like / dislike в виде столбцов таблицы.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

Что, по-видимому, неправильно.Он находит те блоты, которые имеют больше голосов и по крайней мере один голос на прошлой неделе.Я хочу найти тех, у кого больше голосов на прошлой неделе.Надеюсь, это имеет смысл.Спасибо.

1 Ответ

1 голос
/ 31 марта 2011

Иногда очень помогает написать вопрос. Я знал, что мне нужно использовать 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

Есть ли способ улучшить этот запрос?

...