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

Langage SQL Discussion :

Utilisation de MIN()


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 34
    Points : 31
    Points
    31
    Par défaut Utilisation de MIN()
    Bonjour,

    je souhaite réaliser quelquechose il me semble d'assez simple avec Min() mais je ne trouve pas pour l'instant la solution.

    Soit l'exemple suivant
    ID       DATE       VALEUR
    -------------------------
    id1      01/01/12  valeur1
    id1      02/01/12  valeur2
    id1      03/01/12  valeur3
    id2      01/01/12  valeur1
    id2      02/01/12  valeur2
    id3      01/01/12  valeur4
    Je souhaite ramener uniquement

    id1      01/01/12  valeur1
    id2      01/01/12  valeur1
    id3      01/01/12  valeur6

    C'est à dire les dates les plus anciennes correspondant à chaque id en ramenant également la valeur associée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select id,min(date),valeur from Table
    group by id,valeur
    ne fonctionne pas bien sûr car on crée des couples id,valeur et idn'est pas unique

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Si votre SGBDR (quel est-il ?) supporte les fonctions fenêtrées :

    Attention, DATE est mot reservé en SQL... évitez de l'utiliser comme nom de colonne


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    WITH tmp AS (
        SELECT 
            ID,
            DATE,
            VALEUR,
            ROW_NUMBER() OVER(PARTITION BY ID ORDER BY DATE) AS Rn
    )
    SELECT ID, DATE, VALEUR
    FROM tmp
    WHERE Rn = 1

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 34
    Points : 31
    Points
    31
    Par défaut
    Je travaille sur Oracle.

    Merci pour la réponse, cela fonctionne parfaitement.

    Pour le champ nommé Date, c'est effectivement une erreur, mais je l'avais appelé ainsi juste pour l'exemple.

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

Discussions similaires

  1. Utilisation fonction MIN (SQL) sur les dates
    Par fafabzh6 dans le forum SAS Base
    Réponses: 5
    Dernier message: 19/09/2008, 15h36
  2. problème de requête avec utilisation de min/group by
    Par htristra dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 02/10/2007, 13h16
  3. Fonction d'évaluation d'un jeu de dames utilisant l'algorithme du min/max
    Par elron8 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 31/01/2007, 11h04
  4. [CSS2 ] utilisation conjugé max-width + min-width
    Par zargeus dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 07/12/2006, 16h59
  5. Utilisation Max et Min
    Par Poseidon62 dans le forum Ada
    Réponses: 5
    Dernier message: 22/11/2006, 09h44

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