Reputation: 13843
I have a table, contains a list of tasks:
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
how to create a view contain task with its lastest perform date?
e.g result from the above table should be:
id taskname date
------------------------
3 Task1 2012-02-01
2 Task2 2011-12-01
4 Task3 2008-01-09
Upvotes: 1
Views: 226
Reputation: 126
SELECT id, taskName, MAX(Date)
FROM table
GROUP BY taskName
(This will not work in Oracle because id is not in the GROUP BY)
Upvotes: 0
Reputation: 21766
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
Upvotes: 2