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 :

[Oracle 81] GROUP BY et HAVING


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Points : 93
    Points
    93
    Par défaut [Oracle 81] GROUP BY et HAVING
    bonjour,

    désolé de ne pas être plus explicite dans mon titre mais je n'ai pas trouvé 'LE' titre qui résume mon problème que voici :

    J'ai une suite de résultat comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    REF_F     TRIG_S
    134         GRA
    136         GRA
    A6          BAC
    A6          GRA
    .....
    Ce que je voudrais c'est isolé les lignes A6 BAC et A6 GRA
    car la valeur de la colonne de gauche (donc A6) fait référence a 2 TRIG_S

    en espérant avoir été clair

    Merci de votre aide future

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Salut,
    Essaie quelque chose comme ça peut être, à adapter à ton modèle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select REF_F,count(distinct TRIG_S)
    from tatable
    having count(distinct TRIG_S)=2
    group by REF_F
    PS: Je ne suis jamais très sûr du positionnement du having par rapport au group by, à placer après si ça plante.

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 394
    Points
    18 394
    Par défaut
    Il faut passer par une sous-requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM tatable
    WHERE REF_F IN (SELECT REF_F FROM tatable
                    GROUP BY REF_F
                    HAVING COUNT(*) > 1)

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    Je ne suis jamais très sûr du positionnement du having par rapport au group by, à placer après si ça plante.
    Effectivement, le HAVING est après le GROUP BY, cf
    2. La clause HAVING
    La clause HAVING agit comme le filtre WHERE, mais permet de filtrer non plus les données, mais les opérations résultant des regroupements, c'est à dire très généralement toute expression de filtre devant introduire un calcul d'agrégation.
    En outre, pas besoin d'un DISTINCT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select REF_F,count(TRIG_S)
    from tatable
    group by REF_F
    having count(TRIG_S) > 1

Discussions similaires

  1. [Oracle 10]GROUP BY fait-il ORDER BY?
    Par the_ugly dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/04/2007, 13h08
  2. [Oracle 10] Group by utilisation
    Par ReunionIsland dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/08/2006, 12h25
  3. [Oracle 9i] GROUP BY avec jointure.
    Par requinc dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/04/2006, 13h29
  4. [Oracle 8]Group by d'Oracle !!
    Par Wormus dans le forum Oracle
    Réponses: 13
    Dernier message: 10/02/2006, 11h03
  5. GROUP BY et HAVING dans un UPDATE
    Par MashiMaro dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/08/2003, 09h03

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