从每个组中选择DB2中按日期排序的最后n行

时间:2015-05-13 09:24:50

标签: sql database select db2

我正在使用DB2数据库。我有一个包含以下列的表:

Group | Name | Date | Value

我想为每个组选择最后10个值(按日期排序)。我怎么能在DB2中做到这一点?非常感谢。

更新:

这是我到目前为止所做的:

select Group, DATE
from MyTable
ORDER BY Group, DATE 
FETCH FIRST 10 ROWS ONLY

这个sql命令返回结果的前10行,我想得到每组最后10个结果。

1 个答案:

答案 0 :(得分:3)

您不能使用简单的order by子句执行此操作;您需要使用OLAP函数:

with ordered as (
  select group, 
         date, 
         row_number() over (partition by group order by date desc) as date_rank
    from mytable
)
select group, date 
  from ordered 
  where date_rank <= 10