Я повсюду здесь. Приведенный ниже запрос MySql работает для меня, за исключением двух проблем.
1) Я хочу убедиться, что отображается только один результат для каждой категории (у меня 5 категорий), я пытался использовать DISTINCT, но явно неправильно понял это.
2) Я хочу иметь возможность возвращать значение Howmany вне SQL-запроса:
"SELECT DISTINCT category_id, video_id, date_added, COUNT(video_id) AS howmany
FROM votes
WHERE date_added BETWEEN SYSDATE() - INTERVAL 7 DAY AND SYSDATE()
GROUP BY video_id
ORDER BY howmany DESC, video_id
LIMIT 5";
моя таблица голосов выглядит так:
id | video_id | category_id | date_added
РЕДАКТИРОВАТЬ: Ожидаемый результат -
video_id 2 category_id 4 количество голосов 500
video_id 5 category_id 1 количество голосов 377
video_id 88 category_id 3 количество голосов 25
video_id 45 category_id 5 количество голосов 23
video_id 9 category_id 2 количество голосов 2
Отображается видео с наибольшим количеством голосов в каждой категории за последние 7 дней.
DISTINCT
удаляет только дубликаты из видимости — дубликаты означают, что дублируется вся строка значений. Если только одно значение столбца отличается, оно не считается дубликатом. - person OMG Ponies   schedule 16.08.2010