更改group by语句以使字段不被分组

时间:2013-01-26 16:03:22

标签: sql oracle11g

我有以下数据:

id   date_modified   value
1    some_date       4
1    some_date       3
1    some_date       1
2    some_date       5
3    some_date       8
3    some_date       7
...

此查询获取iddate_modified,其中date_modified是最新日期:

select bh.id, max(bh.date_modified) 
from my_table bh
group by bh.id;

这样做:

id   date_modified  
1    some_date       
2    some_date       
3    some_date       
...

其中每个日期是每个id的最新日期,几乎是我想要的日期。

如何更改group by以获取value?这是我感兴趣的value,但我需要使用id进行分组。

非常感谢。

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT id, date_modified, value
FROM
(
    SELECT
        id, date_modified, value, ROW_NUMBER() OVER (PARTITIOn BY Id ORDER BY date_modified DESC) RN
    FROM tbl
) A
WHERE RN = 1