моя сумма поля sql, используя другое поле, чтобы дифференцировать, а затем отсортировать его

0

Я хотел бы спросить что-то о запросе с помощью 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
count
sum

1 ответ

2
Лучший ответ

Попробуйте

SELECT SUM(counter) AS total_viewed, member_id, video_id
FROM member_video_stat
GROUP BY video_id
ORDER BY total_viewed DESC

Хоа

  • 0
    вау, это было быстро ... я все еще редактировал ... это работает как шарм, большое спасибо
  • 0
    Примечание: если есть video_id с более чем одним member_id, в результате вы получите одну строку для этого video_id в вашем наборе результатов, которая даст вам правильную сумму и member_id, который (более или менее) случайным образом выбирается из member_ids, связанного с этот video_id.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню