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

Requêtes PostgreSQL Discussion :

Sélection group by


Sujet :

Requêtes PostgreSQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Sélection group by
    Bonjour,

    Je n'arrive pas à faire une sélection avec un group by sur un seul champ et avoir quand même d'autres champs...
    Quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT "name", "highway", "ref", "tracktype", "code_isee", ST_Union("way") FROM "osm_viairecom" GROUP BY "name";
    ERROR:  column "osm_viairecom.highway" must appear in the GROUP BY clause or be used in an aggregate function
    LINE 1: SELECT "name", "highway", "ref", "tracktype", "code_isee", S...
    Impossible de trouver une fonction d'agrégation de champ de type texte, genre, le premier de la liste...

    Une piste ? Une idée ?
    Merci ;-)
    P.S. le ST_Union("way") est une fonction d'agrégation de données géographiques de l'extension postgis...

  2. #2
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Bonjour,

    Je dirais que c'est normal !

    On regroupe par name soit ... mais pour le reste des champs il faut
    choisir une fonction d'agrégation ex : min("highway"), max etc ...
    ou ne pas les afficher ...
    Ainsi ceci fonctionnera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT "name", min("highway"), max("ref"), count(*) FROM "osm_viairecom" GROUP BY "name";

    Note :
    le ST_Union("way") est une fonction d'agrégation de données géographiques de l'extension postgis
    Et cette fonction renvoie une valeur unique ?
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci vttman,

    Mais comment agréger des champs de type text ?
    C'est mon soucis...

    Oui, ST_Union("way") renvoie une valeur unique...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT "name", ST_Union("way") FROM "osm_viairecom" GROUP BY "name";
    Fonctionne...

  4. #4
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Pour agréger plusieurs champs ?
    Ceci par exemple
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT "name", "highway", "ref" FROM "osm_viairecom" GROUP BY "name", "highway", "ref" ;
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/11/2009, 17h59
  2. Réponses: 1
    Dernier message: 22/07/2008, 18h05
  3. Problème sélection MAX() et GROUP BY
    Par nicolep dans le forum Requêtes
    Réponses: 7
    Dernier message: 12/06/2007, 11h47
  4. Sélection du premier enregistrement de chaque groupe
    Par mout1234 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 15/05/2007, 16h27
  5. Réponses: 7
    Dernier message: 19/10/2004, 22h40

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