Я хотел бы спросить что-то о запросе с помощью MySQL
У меня есть эта таблица называется video_stat, а здесь поле
CREATE TABLE IF NOT EXISTS 'video_stat' (
'id' int(11) NOT NULL AUTO_INCREMENT,
'video_id' int(10) NOT NULL,
'member_id' int(10) NOT NULL,
'counter' int(11) NOT NULL,
'daydate' varchar(15) NOT NULL,
'monthdate' varchar(10) NOT NULL,
'epochtime' text NOT NULL,
PRIMARY KEY ('id')
) ENGINE=InnoDB DEFAULT CHARSET=latin1
поле 'counter' будет обновляться каждый день
и мой вопрос заключается в том, что я хотел бы отсортировать это поле, суммируя счетчик как общее для каждого video_id, а затем сортируя их по общему количеству для video_id, чтобы затем отобразить список на популярной странице видео. Как мне это сделать?
Я думал, что это будет работать с помощью этого запроса:
SELECT SUM( counter ) AS total_viewed, member_id, video_id
FROM member_video_stat
но он только суммирует все в поле счетчика и возвращает одну строку, так как часть SUM (счетчик) не учитывается для каждого и конкретного video_id
иллюстрации:
текущая таблица
+--------------+-----------+---------+
| id| video_id | member_id | counter |
+---+----------+-----------+---------+
| 4 | 6 | 2 | 1 |
| 5 | 9 | 6 | 1 |
| 6 | 12 | 2 | 1 |
| 7 | 6 | 2 | 1 |
| 8 | 12 | 2 | 1 |
+--------------+-----------+---------+
что-то вроде
+----------+-----------+---------+
| video_id | member_id | total |
+----------+-----------+---------+
| 6 | 2 | 2 |
| 9 | 6 | 1 |
| 12 | 2 | 2 |
+----------+-----------+---------+
Попробуйте
SELECT SUM(counter) AS total_viewed, member_id, video_id
FROM member_video_stat
GROUP BY video_id
ORDER BY total_viewed DESC
Хоа