Récupérer la dernier valeur d'un select

Résolu
Bonjour,

Je souhaiterai faire une requête SQL qui me retourne que la dernier valeur d'un select.

j'ai un tableau comme suit :

ID - valeur - periode

Mat1 a MT201301
Mat1 b MT201302
Mat1 c MT201303
Mat1 D MT201304
Mat2 a MT201301
Mat2 b MT201302
Mat2 c MT201303
Mat2 D MT201304
Mat2 E MT201305
Mat2 F MT201306

je voudrais pourvoir récupérer :

pour Mat1 la velaur "D"
et pour le Mat2 la valeur "F"

Si vous quelqu'un a une idée je suis preneur.

Merci d'avance

4 réponses

  1. SELECT id, valeur, periode, LAST_VALUE(valeur) OVER FROM (SELECT * FROM tableau);
    0
    1. Bonjour,

      SELECT * FROM tableau 
      WHERE id='Mat2'
      ORDER BY valeur Desc
      LIMIT 0,1
      

      A+
      1
      1. Modérateur
        Bonjour,

        LIMIT n'existe pas avec le sql d'Oracle.

        cdlt
        0
      2. vous avez pas parlé de ORACLE dans le message d'origine. Donc, faire:

        SELECT * FROM tableau 
        WHERE id='Mat2'
           AND ROWNUM <2
        ORDER BY valeur Desc
        0
      3. Modérateur
        La question est dans le forum
        Base de données / Oracle
        ;-)

        Le rownum étant défini avant l'order by, il serait préférable de faire

        SELECT * FROM ( SELECT * FROM tableau 
          WHERE id='Mat2'
          ORDER BY valeur Desc )
        WHERE  ROWNUM < 2


        Le demandeur n'ayant pas précisé s'il voulait donner en paramètre l'id ou s'il les voulaient tous d'un coup, la solution de francis0001 me parait plutôt bien.
        0
    2. Je pense que la requête la plus adaptée serait :

      SELECT ID, max(valeur) As valeur, periode
      FROM test
      GROUP BY ID;
      1
      1. Bonjour,

        La réponse de Francis fonctionne correctement et correspond à ce que je souhaite.

        Merci à tous pour votre aide.
        0