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

 PostgreSQL Discussion :

Sum et having


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut Sum et having
    Bonsoir,

    je possède une view de structure similaire à ceci

    Champ1
    Champ2
    ...
    Champ6

    avec Champ 6 un nombre.

    J'aimerais être capable de sommer le champ 6 de ma vue où tous les champs 1 3 4 sont identiques.

    Du coup, je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select Champ1, Champ2, Champ3,Champ4,Champ5,SUM(Champ6) 
    From View V
    Group By (Champ1,Champ3,Champ4)

    Sauf que la syntaxe de la requête ne semble pas être bonne...

    Peut-être que je ne m'y prends pas de la bonne manière ?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    Toutes les colonnes de la clause SELECT qui ne font pas l'objet d'une fonction de regroupement doivent être reprises dans la clause GROUP BY.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut
    C'est ce que disait également le message d'erreur.

    Mais je ne comprends pas comment je peux faire mon truc alors.

    Admettons que j'ai ça dans ma view

    id1 id2 id3 champQuelconque value

    1 1 1 "vide" 5
    1 1 2 "vide" 6
    1 1 1 "vide" 10
    1 1 2 "vide" 4

    Je veux récupérer en résultat ceci après exécution de la requête

    id1 id2 id3 champQuelconque SumValue

    1 1 1 "vide" 15
    1 1 2 "vide" 10

  4. #4
    Membre chevronné Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Par défaut
    Hello !

    voila qui devrait vous aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select id1, id2, id3, SUM(Champ5) 
    From View V
    Group By id1, id2, id3
    si le champQuelconque est vide a chaque fois autant ne pas le mettre dans le select

  5. #5
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut
    Salut, voilà ma requête, mais l'erreur persiste !

    La vue fusion se trouve dans le schéma résultats

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    create or replace view resultats.ready_to_export as
    SELECT idinsee, poids_insee_2010, idenquete,numdep, numtraj, modetr, arretmont, arretdesc, SUM(longtron) 
    FROM resultats.fusion
    GROUP BY(idinsee,poids_insee_2010,idenquete,numdep,numtraj,modetr,arretmont,arretdesc)
    A ceci, j'obtiens l'erreur suivante
    ERREUR: la colonne « fusion.idinsee » doit apparaître dans la clause GROUP BY ou doit être utilisé dans une fonction d'agrégat
    LINE 2: SELECT idinsee, poids_insee_2010, idenquete,numdep, numtraj,...
    ^
    ********** Erreur **********

    ERREUR: la colonne « fusion.idinsee » doit apparaître dans la clause GROUP BY ou doit être utilisé dans une fonction d'agrégat
    État SQL :42803
    Caractère : 60
    Et je ne comprends pas étant donné que l'id dont on me dit qu'il doit être dans le group by est bel et bien dans le group by...



    Une idée ?

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    Il ne faut pas de parenthèses autour des colonnes de la clause GROUP BY.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

Discussions similaires

  1. Requete HAVING SUM
    Par pierre002 dans le forum Requêtes
    Réponses: 2
    Dernier message: 03/09/2015, 16h12
  2. Requête avec un Having SUM avec une autre requête
    Par robinwood01 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 16/03/2011, 13h26
  3. SELECT SUM et HAVING
    Par zahovic dans le forum Débuter
    Réponses: 6
    Dernier message: 26/11/2009, 18h46
  4. [HAVING] SUM différent de autre champ
    Par Romalafrite dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/05/2008, 17h36
  5. Query, sum over fields that have the same ID as the active field
    Par piers dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 28/04/2007, 11h33

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