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 :

[Group By] Eliminer certains doublons


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 46
    Points
    46
    Par défaut [Group By] Eliminer certains doublons
    Bonjour, je n'arrive pas à trouver la solution... si quelqu'un y arrive ou peut me dire si c'est impossible avec certitude, merci (mais normalement tout est possible avec SQL)


    Probleme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       une table SESSION( IDvisiteur, la_date, heure, la_page, le_domaine) 
       // pas de clé primaire
    (ex :
    B343434, "25/12/2002", "10h38", "www.toto.com/accueil.html", "toto.com"
    B343434, "25/12/2002", "10h48", "www.toto.com/news.html", "toto.com"
    B342323, "25/12/2002", "22h14","www.turlututu.com/achat.html", "turlututu.com"
    B49990, "25/12/2002", "23h22", "www.toto.com/register.html", "toto.com"
    ...)

    Je voudrais connaitre le nombre de visiteur qu'il y a eu sur un site donné (domaine), par jour ...

    je faisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT COUNT(*) "Nb de visiteur pour toto.com"
    FROM SESSION
    WHERE le_domaine="toto.com"
    GROUP BY la_date
    Seulement ya un probleme si le visiteur consulte une page à 23h58, puis 3 minutes plutard il consulte une autre page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    B33333, "24/12/2005" , "23h58", "www.toto.com/achat.html", "toto.com"
    B33333, "24/12/2005" , "23h59", "www.toto.com/news.html", "toto.com"
    B33333, "25/12/2005" , "00h01", "www.toto.com/achat.html", "toto.com"
    C44444, "25/12/2005", "08h44" , "www.toto.com/news.html", "toto.com"

    Il faudrait que la requete me retourne : 1 visiteur le 24/12/2005, et 1 visiteur le 25/12/2005
    et non pas : 1 visiteur le 24/12/2005, et 2 visiteurs le 25/12/2005 ce qui est faux.

    voila merci beaucoup a celui qui trouvera parce que la je bloque complet

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT COUNT(DISTINCT IDVisiteur) "Nb de visiteur pour toto.com"
    FROM SESSION
    WHERE le_domaine="toto.com"
    GROUP BY la_date

  3. #3
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Hum non, le visiteur qui visite aux alentours de minuit est compté dans les visiteurs du 24 déc, et du 25
    mais bon c'est assez peu académique d'enlever cette 2eme valeur ...
    je vais essayé avec un not exists...

  4. #4
    Membre éclairé Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Points : 781
    Points
    781
    Par défaut
    Hello,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT COUNT(DISTINCT S1.IDVisiteur) "Nb de visiteur pour toto.com"
    FROM SESSION S1
    WHERE s1.le_domaine="toto.com"
    AND S1.IDVisiteur NOT EXISTS (
          SELECT DISTINCT s2.IDVisiteur
          FROM SESSION s2
          WHERE s2.la_date<s1.la_date
          AND s2.le_domaine="toto.com"
          ))
    GROUP BY S1.la_date
    Sans garanties et en supposant que IDVisiteur est un ID de "session" (unique par visite)

  5. #5
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Exactement !

    merci Spootnik.

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

Discussions similaires

  1. Eliminer les doublons dans un tableau d'entiers
    Par engi dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 21/03/2006, 13h59
  2. Eliminer les doublons d'un tableau de hachage
    Par dreydrey dans le forum Langage
    Réponses: 21
    Dernier message: 15/11/2005, 15h03
  3. Elimination des doublons
    Par amika dans le forum Requêtes
    Réponses: 8
    Dernier message: 05/11/2005, 09h28
  4. Elimination des doublons
    Par bilalove dans le forum Oracle
    Réponses: 3
    Dernier message: 11/08/2005, 13h53
  5. Eliminer des Doublon dans une Table
    Par Soulama dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/02/2005, 14h27

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