Comment sélectionner une ligne avec la plus grande valeur dans son groupe?

J'ai une table, contient une list de tâches:

ID TaskName Date ---------------------------------- 1 Task1 2010-11-23 2 Task2 2011-12-01 3 Task1 2012-02-01 4 Task3 2008-01-09 5 Task2 2007-03-09 6 Task3 2000-01-01 

comment créer une vue contenir la tâche avec sa dernière date d'exécution?

Par exemple, le résultat du tableau ci-dessus devrait être:

 id taskname date ------------------------ 3 Task1 2012-02-01 2 Task2 2011-12-01 4 Task3 2008-01-09 

 SELECT ID, TaskName, Date FROM ( select ID, ROW_NUMBER() OVER (PARTITION BY TaskName ORDER BY Date DESC) Ordinal, TaskName, Date FROM YourTable ) t WHERE Ordinal = 1 
 SELECT id, taskName, MAX(Date) FROM table GROUP BY taskName 

(Cela ne fonctionnera pas dans Oracle car l'ID n'est pas dans le GROUP BY)