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

 Oracle Discussion :

Distinct + sum


Sujet :

Oracle

  1. #1
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut Distinct + sum
    Bonjour à tous,

    J'ai une liste de données qui sont extraites via une requête.
    Cependant, il arrive parfois que certaine lignes arrivent en double.

    Elle doublonne car une valeur change d'une ligne a l'autre.
    Jusque là, rien d'anormal.

    Un petit extrait des données vous aidera à mieux comprendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    id  Nom     ddn   salaire
    -- -------- ----- -------
    01  Casimir 09/08    200
    01  Casimir 09/08    150
    02  Batman  07/12    250
    03  Joker   09/11    500
    03  Joker   09/11    250
    Ce que je voudrais arriver à obtenir c'est une seule ligne pour chacun des personnages :
    • casimir avec un salaire de 200+150 => 350
    • le joker 500+250 => 750
    • batman resterait inchangé


    J'ai pensé a un distinct, mais comme les données ne sont pas toutes identiques, ça ne servirait à rien.

    Merci pour votre temps.

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Cf. fonction d'agrégation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      select nom, sum(salaire)
        from matable
    group by nom

  3. #3
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    mais justement le SUM(salaire) ne va pas faire la somme de tout les salaire de la table ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Points : 388
    Points
    388
    Par défaut
    bonjour,

    Le GROUP BY permet justement d'indiquer le groupe sur lequel faire le cumul,
    dans ce cas la somme se fait sur le nom

  5. #5
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par Nako_lito Voir le message
    mais justement le SUM(salaire) ne va pas faire la somme de tout les salaire de la table ?
    Le mieux n'est-il pas d'essayer ?

  6. #6
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    ok.
    Et si je me souviens bien, dans le group by, il faut mettre tout les champs qui n'ont pas de fonction d'aggrégat c'est ca ?

  7. #7
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Oui, sinon tu auras l'erreur ora-909 : not a GROUPBY expression

  8. #8
    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
    Oui, mais là vos questions sont ultra basiques.
    Si vous aviez cherché dans les cours vous auriez trouvé la réponse à votre question :
    http://sqlpro.developpez.com/cours/sqlaz/ensembles/

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

Discussions similaires

  1. Group by? Distinct? Sum? Limites de mysql?
    Par zizilla dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/11/2010, 19h49
  2. Distinct et SUM
    Par maxeln dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 04/05/2010, 09h26
  3. problème avec SUM(Distinct champ_x) sur base access
    Par walid_kerkoub dans le forum Bases de données
    Réponses: 2
    Dernier message: 29/09/2009, 16h14
  4. Utilisation de "sum" et "distinct"
    Par guyanais dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/05/2009, 20h15
  5. SUM de tout les éléments distinct
    Par gomodo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 22/01/2008, 21h25

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