IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Requête SQL ?


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 36
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ???

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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().

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 36
    Par défaut
    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
    .....

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 : 16 818
    Billets dans le blog
    14
    Par défaut
    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 Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  5. #5
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 36
    Par défaut
    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 ?

  6. #6
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 36
    Par défaut
    J'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 15h41
  2. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 19h42
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  4. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo