Page 1 sur 1

Récuper la dernière valeur

Posté : 18 févr. 2015, 19:54
par miakost
Bonsoir a tous,

Étant novice dans le domaine de la requête SQL j'aimerais avoir un peu d'aide. ( Base Postgresql )

J'ai une table avec 3 colonnes, j'aimerais récupérer la dernière tache en cour pour chaqu'un des USER.

USER | TASK | DATE
Toto1 | task1|01/01/2015|
Toto1 | task2|01/02/2015|
Toto1 | task3|10/02/2015|
Toto2 | task1|01/12/2014|
Toto2 | task2|01/01/2015|
Toto3 | task1|01/11/2014|
Toto3 | task2|01/12/2014|
Toto3 | task3|01/01/2015|
Toto3 | task4|01/02/2015|

J'aimerais en résultat de ma requête :

Toto1 | task3
Toto2 | task2
Toto3 | task4

Merci d'avance pour votre aide !

Re: Récuper la dernière valeur

Posté : 18 févr. 2015, 23:26
par yann18
bonsoir,
tu peux utiliser une fonction de fenêtrage over partition.
select *
from (
  select user, 
         task,
        date,
        max(date)  over (partition by user) as max_date
  from la_table
) sous_requete
where date= max_date
la sous requête récupère la date max pour chaque utilisateur puis on filtre cette date max à la date retournée par chaque ligne de la requête.

fait attention à l'utilisation du mot date car c'est un mot réservé.

Re: Récuper la dernière valeur

Posté : 19 févr. 2015, 12:48
par miakost
Bonjour,

Un grand merci pour votre aide, cela me permet de récupérer exactement ce que je voulais !