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 21/02/2011, 11h59   #1
Invité régulier
 
Inscription : mars 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 19
Points : 6
Points : 6
Par défaut Requête SQL ?

Bonjour à tous,

Dans une table "stat" j'ai la resolution écran des visiteurs, leur ip et une date:

id datez resolution ip
2 18/02/2011 1024*768 xxx.xxx.xxx.204
3 18/02/2011 1024*768 xxx.xxx.xxx.159
4 18/02/2011 1280*768 xxx.xxx.xxx.87
5 19/02/2011 1280*768 xxx.xxx.xxx.56
6 19/02/2011 1024*768 xxx.xxx.xxx.204
7 21/02/2011 1280*768 xxx.xxx.xxx.56
8 21/02/2011 1024*768 xxx.xxx.xxx.204
9 21/02/2011 1024*768 xxx.xxx.xxx.9

J'ai fait la requête suivante :

Code :
1
2
3
4
SELECT resolution, count(resolution) AS cptreso 
FROM stat 
GROUP BY resolution 
ORDER BY resolution
J'obtiens:

resolution cptreso
1024*768 5
1280*768 3

J'ai bien les différentes résolutions avec la somme mais j'aimerais en plus affiner le résultat par ip, c'est a dire qu'un utilisateur qui est 3 fois dans la base (ex xxx.xxx.xxx.204) ne soit compté qu'une fois et de préférence avec la date la plus récente.

J'aimerais obtenir :

resolution cptreso
1024*768 3
1280*768 2


J'ai essayé de mettre un select dans le from mais ça ne fonctionne pas... qui peut m'aider svp ???
atn59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 12h05   #2
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Code :
SELECT resolution, count(resolution) AS cptreso FROM stat GROUP BY resolution, ip ORDER BY resolution
Test cela je suis pas sur de l'interaction sur l'agrégat count().
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 12h08   #3
Invité régulier
 
Inscription : mars 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 19
Points : 6
Points : 6
en incluant ip dans le group by j'obtiens 673 lignes...(sur 906 au total)

resolution cptreso
1024x768 1
1024x768 2
1024x768 1
1024x768 2
1024x768 1
.....
atn59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 12h25   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 993
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 : 10 993
Points : 18 246
Points : 18 246
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par atn59 Voir le message
j'aimerais en plus affiner le résultat par ip, c'est a dire qu'un utilisateur qui est 3 fois dans la base (ex xxx.xxx.xxx.204) ne soit compté qu'une fois et de préférence avec la date la plus récente.

J'aimerais obtenir :

resolution cptreso
1024*768 3
1280*768 2
Où est la date dans ton résultat souhaité ?
Comment y distingues-tu les IP ?

Est-ce qu'en fait tu ne veux conserver pour chaque IP que la résolution de la dernière date et ensuite compter ces résolutions ?
__________________
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 21/02/2011, 12h26   #5
Invité régulier
 
Inscription : mars 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 19
Points : 6
Points : 6
A l'affichage je ne veux pas la date et l'ip, c'est seulement dans le tri.
Je ne sais pas si mon explication est bien clair ?
atn59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 14h27   #6
Invité régulier
 
Inscription : mars 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 19
Points : 6
Points : 6
J'ai trouvé :

Code :
1
2
3
SELECT  resolution,count(resolution) AS cptreso 
FROM (SELECT ip,resolution, max(datez) FROM stat GROUP BY ip,resolution) AS triparip 
GROUP BY resolution
atn59 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 12h51.


 
 
 
 
Partenaires

Hébergement Web