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

PL/SQL Oracle Discussion :

Problème count Join group by


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Ingénieur etudes et développement .Net
    Inscrit en
    Février 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur etudes et développement .Net

    Informations forums :
    Inscription : Février 2008
    Messages : 56
    Points : 31
    Points
    31
    Par défaut Problème count Join group by
    Bonjour


    J'ai une requête qui fait une jointure en 2 tables (Operateur, Operations )
    et mon but est de sélectionner tous les champs de l’opérateur et le nombre d’opérations de chaque opérateur.

    J'ai essayé plusieurs possibilités mais ça ne marche pas.
    Quelqu'un aurait-il une idée ou une solution pour cette requête ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      SELECT COUNT(n.lib_operation) AS "nombre d'operation", r.*,
        FROM Operateur AS r INNER JOIN
             Operation AS n ON r.id_oper = n.id_oper
    GROUP BY r.id_oper
    Merci

  2. #2
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Points : 960
    Points
    960
    Par défaut
    Lorsque tu fais un group by, tu rassembles les données et donc logiquement, tu ne retrouves pas toutes les lignes à l'identique.
    Tu peux cependant faire une requête de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT n2.nb_ope, r.*
    FROM Operateur r INNER JOIN
    Operation n ON r.id_oper = n.id_oper
    inner join (select id_oper, count(id_ope) nb_oper from Operation GROUP BY id_oper) n2 on n2.id_oper=r.id_oper
    Cordialement

  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 386
    Points
    18 386
    Par défaut
    Toutes les colonnes non-agrégées du SELECT doivent se retrouver dans le GROUP BY.
    On ne fait pas de "select *", on prend son courage à deux mains et on écrit toutes les colonnes qui nous intéressent (la plupart des outils graphique le font en un simple glisser / déposer).

    Donc votre requête devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      SELECT COUNT(n.lib_operation) AS "nombre d'operation", <les colonnes de la table Operateur>,
        FROM Operateur AS r INNER JOIN
             Operation AS n ON r.id_oper = n.id_oper
    GROUP BY <les colonnes de la table Operateur>

  4. #4
    Nouveau membre du Club
    Profil pro
    Ingénieur etudes et développement .Net
    Inscrit en
    Février 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur etudes et développement .Net

    Informations forums :
    Inscription : Février 2008
    Messages : 56
    Points : 31
    Points
    31
    Par défaut
    Merci beaucoup pour vos réponses
    ça ma parfaitement votre requête pinocchio
    @Waldar: je l'ai essayé , mais sur group by je pense que oracle n'accepte pas les champs de type text

  5. #5
    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 386
    Points
    18 386
    Par défaut
    Text, c'est LONG / LOB j'imagine.
    En effet, il y a des limitations.

  6. #6
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    À noter qu'on peut aussi demander un count comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      SELECT COUNT(n.lib_operation) over (partition by r.id_oper) AS "nombre d'operation"
                ,<les_autres_champs>
        FROM Operateur AS r INNER JOIN
             Operation AS n ON r.id_oper = n.id_oper

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

Discussions similaires

  1. problème count et group by
    Par olivt0603 dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/12/2010, 15h13
  2. Problème de join ou group by ou ?
    Par V i n c e n t dans le forum Langage SQL
    Réponses: 16
    Dernier message: 30/07/2010, 16h35
  3. Réponses: 3
    Dernier message: 09/10/2007, 16h36
  4. Problème INNER JOIN GROUP BY
    Par benjisan dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/05/2007, 16h18
  5. problème count et group by
    Par zulkifli dans le forum Requêtes
    Réponses: 3
    Dernier message: 24/11/2006, 04h53

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