我要从表中选择价格,其中给定的日期在表的开始日期和结束日期之间。
SELECT price
FROM table
WHERE 'dategiven' BETWEEN startdate AND enddate
使用日期时间过滤器,这很容易。问题是我在提供的时间窗口中有多个记录,我也有一个版本列。
下面是我的桌子的一个例子:
我想我的查询输出是如下那里我dategiven
就是2013-08-25
牛奶有3条记录,其中2条有效dategiven
(2013-08-25)。然后,我想返回最高版本的结果吗?
就像是:
SELECT
price
FROM table
WHERE 'dategiven' BETWEEN startdate AND enddate AND max(version)
使用row_number()
函数对行进行排名
select product, price, version
from
(
select
*,
row_number() over (partition by product order by version desc) rn
from yourtable
where @dategiven between startdate and enddate
) v
where rn = 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句