我正在使用DB2
数据库。我有一个包含以下列的表:
Group | Name | Date | Value
我想为每个组选择最后10个值(按日期排序)。我怎么能在DB2中做到这一点?非常感谢。
更新:
这是我到目前为止所做的:
select Group, DATE
from MyTable
ORDER BY Group, DATE
FETCH FIRST 10 ROWS ONLY
这个sql命令返回结果的前10行,我想得到每组最后10个结果。
答案 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