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 :

Plus petite valeur, sous groupe


Sujet :

Requêtes PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Par défaut Plus petite valeur, sous groupe
    Bonjour

    je cherche en vain la requête qui me permettra de sélectionner les lignes qui ont la plus petite valeur d'un champ mais d'un groupe (champ) particulier. Voici

    id group item
    1 a 123
    2 a 122
    3 a 432
    4 b 22
    5 b 21


    Donc, je veux le id 2 et 5 puisque l'item à la valeur la plus basse par rapport au champ "group"

    Merci

    MartinF

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    peut être quelque chose comme ceci (sans être sur...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT id OVER(PARTITION BY 'group' ORDER BY item)
    FROM uneTable
    GROUP BY 'group'

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 491
    Par défaut
    quelque chose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ma_table  where item in (select min(item) from ma_table group by grp)

  4. #4
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Bonjour,

    peut être quelque chose comme ceci (sans être sur...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT id OVER(PARTITION BY 'group' ORDER BY item)
    FROM uneTable
    GROUP BY 'group'
    Qui ne fonctionne, pour info, qu'à partir de la version Postgresql 8.4 qui intègre les fonctions analytiques
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  5. #5
    Membre éclairé Avatar de Jihnn
    Inscrit en
    Décembre 2005
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 330
    Par défaut
    À ma connaissance, la requête qu'a proposé Madfrix ne fonctionnera pas, mais l'idée d'utiliser les fonctions analytiques est excellente. J'aurais fait comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    WITH TT AS (
        SELECT id, rank() OVER (PARTITION BY "group" ORDER BY item) R
        FROM la_table
    )
    SELECT id
      FROM la_table
     WHERE R = 1;

Discussions similaires

  1. Réponses: 11
    Dernier message: 29/05/2015, 12h19
  2. Réponses: 2
    Dernier message: 24/07/2013, 14h57
  3. [MySQL] Retourner les plus petites valeurs d'une table
    Par Albafika dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 27/10/2008, 18h38
  4. Initialiser un double à la plus petite valeur possible.
    Par Pierre8r dans le forum Général Java
    Réponses: 4
    Dernier message: 05/03/2008, 20h36
  5. [SQL] Sélectionner la plus petite valeur
    Par Gabout dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/04/2007, 10h36

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