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)