我有一张我正在使用的表,看起来像这样:
Code Name Date
-------------------------------------------
10 General Fund 7/18/2013 1:36:15 PM
100 Plain Fund 12/31/2099
10300 Fund Name 8/12/2099
10300 Fund Name 5/17/2099
10300 Fund Name 12/31/2099
除了日期之外,有些行是相同的 - 我想按行选择具有最大日期的所有代码,如下所示:
Code Name Date
-------------------------------------------
10 General Fund 7/18/2013 1:36:15 PM
100 Plain Fund 12/31/2099
10300 Fund Name 12/31/2099
这是我到目前为止所得到的,但它没有给我预期的结果:
SELECT DISTINCT
t1.code,
t1.name,
t1.date,
FROM table.fund t1
INNER JOIN table.fund t2
ON t1.code = t2.code
AND TRUNC(t1.date) > TRUNC(t2.date);
答案 0 :(得分:3)
select code, name, max(date) from your_table group by code, name;
答案 1 :(得分:0)
您可以使用窗口函数来完成此任务:
select
*
from
(
select
ROW_NUMBER() OVER (PARTITION BY "TheName" ORDER BY "TheDate" desc) as RN,
fund.*
from
fund
) t
where t.RN = 1