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 :

Group By


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 1
    Par défaut Group By
    Bonjour à tous,

    Je viens de MySQL donc apparement j'ai pris quelques mauvaises habitudes en SQL.


    La requête est bidon mais elle illustre bien.

    ma_table_ville ressemble a peu près à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    id	|ville		|p_id
    1	|Paris		|1
    2	|Lyon		|1
    3	|Londres	|2
    4	|Paris		|2
    5	|Marseille	|3
    6	|Lyon		|3
    7	|NY		|3
    8	|Paris		|3
    ...
    Elle représente chaque ville où la personne est passée

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT P.id, P.nom, P.prenom, P.adresse, P.tel, ...
    FROM ma_table P, ma_table_ville V
    WHERE P.id = V.p_id
    AND (
    V.ville = 'Paris'
    OR
    V.ville = 'Lyon'
    )
    Bon on ne parle pas de la jointure ou de la structure qui ne sont pas très jolies, mais juste du Group by, ceci est juste un exemple pour illustrer.

    Avec une telle requête, les personne ayant visitée à la fois Paris et Lyon apparaissent en double.

    Avant sous MySQL il me suffisait de faire
    Mais sous PostgreSQL, si je ne veut pas avoir de message d'erreur, j'ai trouvé qu'il fallait mettre tous les champs SELECT dans GROUP BY :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GROUP BY P.id, P.nom, P.prenom, P.adresse, P.tel, ...
    Sachant qu'il n'y aura aucun enregistrement avec le même P.id qui soit différent, n'y a-t-il pas un moyen de dire qu'il doit regrouper selon tout les champs de SELECT ?

    Sachant que je ne peut pas bien modifier le champ SELECT, et que, de préférence, ma requête doit être compatible MySQL et PostgreSQL


    Merci beaucoup

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    bonjour,

    cela ne serais pas plutôt


Discussions similaires

  1. [CR8] Groupes nommés par ordre spécifié
    Par PschittN dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/05/2004, 23h46
  2. Selection de Groupes ki ne sont pas sous groupes...
    Par superdada dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/07/2003, 14h42
  3. [RaveReport] - Bloquer groupe sur une page
    Par muaddib dans le forum Rave
    Réponses: 3
    Dernier message: 25/02/2003, 16h21
  4. gestion des groupes
    Par muaddib dans le forum QuickReport
    Réponses: 3
    Dernier message: 31/12/2002, 11h01

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