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 :

[SQL2] Count sur un Group By


Sujet :

Langage SQL

  1. #1
    Membre confirmé Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Points : 452
    Points
    452
    Par défaut [SQL2] Count sur un Group By
    Salut tout le monde,

    voilà mon problème :

    J'ai une tabe de report d'évènements (ID, SESSIONID,CREATION_DATE, SERVICE_ID...)
    Exemple de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ID    SESSIONID    CREATION_DATE
    1     session1       date1
    2     session1       date2
    3     session2       date3
    4     session1       date4
    Pour obtenir les évènements groupés par SESSION_ID, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT   MIN(ID),
             SESSIONID,
             CREATION_DATE
    FROM     MMP_REPORT_EVENT
    WHERE    SERVICE_ID = 66
    GROUP BY SESSIONID
    ORDER BY CREATION_DATE
    Et j'obtiens ce que je veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ID    SESSIONID    CREATION_DATE
    1     session1        date1
    3     session2        date3
    Je n'ai pas de tuple avec SESSIONID en double.

    Mais comment puis-je avoir le nombre de tuples (ici 2) sans faire une requête imbriquée ?

    Merci !

  2. #2
    C_C
    C_C est déconnecté
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 139
    Points : 92
    Points
    92
    Par défaut
    Salut,

    je pense qu'il suffira d'ajouter un COUNT(*) à ton SELECT.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT   MIN(ID),
             SESSIONID,
             CREATION_DATE,
             COUNT(*)
    FROM     MMP_REPORT_EVENT
    WHERE    SERVICE_ID = 66
    GROUP BY SESSIONID
    ORDER BY CREATION_DATE

  3. #3
    Membre confirmé Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Points : 452
    Points
    452
    Par défaut
    C'est ce que j'ai pensé dans un premier temps, mais en fait il compte le nombre de tuples ayant la même session.

    J'obtiens donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ID    SESSIONID    CREATION_DATE count(*)
    1     session1        date1      3
    3     session2        date3      1

  4. #4
    Membre confirmé Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Points : 452
    Points
    452
    Par défaut
    En fait il est possible de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT count(DISTINCT(SESSIONID))
    FROM MMP_REPORT_EVENT
    WHERE SERVICE_ID=66
    et ça marche très bien

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

Discussions similaires

  1. [MySQL-5.6] Sélection employé travaillant sur 2 projets + COUNT sans le GROUP BY
    Par emykev22 dans le forum Requêtes
    Réponses: 24
    Dernier message: 16/10/2018, 14h10
  2. Group by Sum et count sur des objets
    Par soazig dans le forum Linq
    Réponses: 2
    Dernier message: 02/06/2010, 16h35
  3. Réponses: 2
    Dernier message: 05/04/2008, 17h33
  4. Aide sur les groupes (ADO)
    Par portu dans le forum QuickReport
    Réponses: 3
    Dernier message: 18/08/2004, 16h13
  5. 2 Count() sur deux tables en jointures gauches
    Par Alexandre T dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2003, 16h53

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