Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2011, 10h56   #1
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
Par défaut Classement résultat par date

Bonjour,
j'aurais besoin de votre aide s'il vous plait.
Je suis entrain de créer une page de résultats qui doit lire dans deux tables.
Il s'agit d'une table de vidéos à afficher et d'une deuxième table qui comptabilise les clics des vidéos et la date du clic.
Il arrive donc qu'un id d'une vidéo soit répété dans la table des clics.

Je dois créer une page de résultat par le plus grand nombre de clic hier, depuis une semaine et un mois.

J'arrive à afficher les résultats en utilisant :
Code :
1
2
SELECT video.id, video.nom, video.image
FROM video INNER JOIN clic ON clic.id_video = video.id AND clic.date = CURDATE() - 1
Code :
1
2
3
SELECT video.id, video.nom, video.image, clic.date
FROM video INNER JOIN clic ON clic.id_video = video.id
WHERE  TO_DAYS(NOW()) - TO_DAYS(clic.date) <= 7;
Mon problème c'est que j'aimerais pouvoir classer les résultats selon le nombre de clics reçu par période (hier ,une semaine, un mois) du plus grand au plus petit.
Merci d'avance
thildouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 11h11   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 007
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 007
Points : 18 278
Points : 18 278
Envoyer un message via MSN à CinePhil
Puisque tu cherches le nombre de clics, il te faut des requêtes avec COUNT et GROUP BY.
Pour la semaine passée, ça devrait donner quelque chose comme ça, à l'acceptation du calcul sur les dates de ton SGBD près !
Code :
1
2
3
4
5
6
SELECT v.id, v.nom, v.image, COUNT(c.id_video) AS nb
FROM video v
INNER JOIN clic c ON c.id_video = v.id
WHERE c.date > CURRENT_DATE - INTERVAL 1 WEEK
GROUP BY v.id, v.nom, v.image
ORDER BY COUNT(c.id_video) DESC
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 11h22   #3
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
Ok donc tu comptes les clics que tu stockes dans nb et ensuite du ORDER BY clic

Merci ça marche nickel
thildouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h59.


 
 
 
 
Partenaires

Hébergement Web