Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
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, 11h57   #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,

Dans une table "stat" j'ai la résolution écran des visiteurs, leur Ip et une date:

id dates 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 :
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, 12h18   #2
Membre habitué
 
Développeur informatique
Inscription : juillet 2002
Messages : 96
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2002
Messages : 96
Points : 120
Points : 120
bonjour,

tu peux essayer ca peut être ?

Code :
1
2
3
4
 
SELECT resolution,count(resolution) as cptreso FROM 
(SELECT ip,resolution from stat group by ip order by date desc) as triparip 
group by resolution
Cordialement
__________________
Je connais des gens qui ne sont pas aware, il ne sont pas qu courant. il ne sont pas a l'attention de savoir qu'ils existent.
"J-C Van dam"
Lharuun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 12h21   #3
Invité régulier
 
Inscription : mars 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 19
Points : 6
Points : 6
Merci de ta réponse mais j'ai le message :
Vous avez essayé d'exécuter une requête ne comprenant pas l'expression spécifiée 'resolution' comme une partie de la fonction d'agrégat.
atn59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 12h54   #4
Membre habitué
 
Développeur informatique
Inscription : juillet 2002
Messages : 96
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2002
Messages : 96
Points : 120
Points : 120
désolé j'avais pas vu que tu utilisais access


il faut lui mettre tous les membres dans un group by
Code :
1
2
3
4
 
SELECT resolution,count(resolution) as cptreso FROM 
(SELECT ip,resolution from stat group by ip,resolution order by date desc) as triparip 
group by resolution,count(resolution)
Cordialement.
__________________
Je connais des gens qui ne sont pas aware, il ne sont pas qu courant. il ne sont pas a l'attention de savoir qu'ils existent.
"J-C Van dam"
Lharuun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 13h17   #5
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 maintenant :
Impossible d'avoir une fonction d'agrégat dans la clause GROUP BY (count(resolution)).

j'ai donc enlevé le count resolution du group by et quand je lance la requête il me demande d'entrer une date à la main.
atn59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 14h12   #6
Membre chevronné
 
Inscription : mai 2006
Messages : 928
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 928
Points : 762
Points : 762
Bonjour,
peut etre
Code :
1
2
3
SELECT resolution,count(resolution) as cptreso FROM 
(SELECT resolution from stat group by resolution,IP) as triparip 
group by resolution
Bonne journée
cbleas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 14h31   #7
Invité régulier
 
Inscription : mars 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 19
Points : 6
Points : 6
Merci cbleas ça fonctionne, et je viens de trouver pour inclure la date la plus récente si il y a plusieurs fois la même ip:

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
Vieux 22/02/2011, 14h53   #8
Invité de passage
 
Inscription : février 2011
Messages : 1
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 1
Points : 1
Points : 1
Par défaut demande

est ce qu'il y aquelqu'un meut me dire la reponse de cet question :Liste des noms de villages qui ont combattu contre le camp n°3 classés par ordre alphabétique (requetes imbriquées)
bach99 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