Select 来自每个组的最后 n 行在 DB2 中按日期排序
Select from each group the last n rows orders by date in DB2
我正在使用 DB2
数据库。我有一个包含以下列的 table:
Group | Name | Date | Value
我想 select 每个组的最后 10 个值(按日期排序)。我怎样才能在 DB2 中做到这一点?非常感谢。
更新:
这是我到目前为止所做的:
select Group, DATE
from MyTable
ORDER BY Group, DATE
FETCH FIRST 10 ROWS ONLY
此 sql 命令 return 结果的前 10 行,我想为每个组获取最后 10 个结果。
你不能用一个简单的 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
我正在使用 DB2
数据库。我有一个包含以下列的 table:
Group | Name | Date | Value
我想 select 每个组的最后 10 个值(按日期排序)。我怎样才能在 DB2 中做到这一点?非常感谢。
更新:
这是我到目前为止所做的:
select Group, DATE
from MyTable
ORDER BY Group, DATE
FETCH FIRST 10 ROWS ONLY
此 sql 命令 return 结果的前 10 行,我想为每个组获取最后 10 个结果。
你不能用一个简单的 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