2010-09-29 25 views
0

je voudrais poser une question au sujet de la requête en utilisant MySQLma somme de champ sql en utilisant un autre champ pour diffrentiate et trier alors il

j'ai ce tableau appelé video_stat, et est ici le domaine

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 

le ' et la question est que, je voudrais trier ce champ, en additionnant le compteur comme total par video_id et ensuite les trier par total par video_id pour ensuite afficher la liste une page vidéo populaire. Comment puis je faire ça ??

Je pensais que ça marcherait en utilisant cette requête

SELECT SUM(counter) AS total_viewed, member_id, video_id 
FROM member_video_stat 

mais il résume que tout sur le terrain du compteur et retourner une seule ligne depuis la partie SUM (compteur) ne comptait pas pour chacun et en particulier video_id

illustration:

table en cours

+--------------+-----------+---------+ 
| 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 | 
+--------------+-----------+---------+ 

à quelque chose comme

+----------+-----------+---------+ 
    | video_id | member_id | total | 
    +----------+-----------+---------+ 
    |  6 |  2 |  2 | 
    |  9 |  6 |  1 | 
    |  12 |  2 |  2 | 
    +----------+-----------+---------+ 

s'il vous plaît aider Merci beaucoup

Répondre

2

Donnez à ce essayer

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

Hoa

+0

wow qui a été rapide ... je continuais .. modifie actuellement Cela fonctionne comme un charme, merci beaucoup – littlechad

+0

Note: s'il y a un video_id avec plus d'un member_id, vous finirez par * one * row pour cet video_id dans votre jeu de résultats, en donnant vous le total correct et un member_id qui est (plus ou moins) choisi au hasard parmi les member_ids associés à ce video_id. – titanoboa