我有一张桌子,每日观察一些股票。
DatePrice date
IndexLevel float
Stock nvarchar(7)
Weight float
但是我只对股票的月末价值感兴趣。所以说我想在2017年的日期范围内查询该表我只想要返回12个观察值。但是,如果该月的最后一天是周末,则没有价值,因此需要获得该月的最后一个工作日。这可能吗?
答案 0 :(得分:3)
将month()
功能与窗口功能一起使用
选择月份(dateprice)
select t.*
from (select t.*,
row_number() over (partition by year(dateprice), month(dateprice)
order by dateprice desc
) as seqnum
from t
where dateprice >= '2017-01-01' and dateprice < '2018-01-01'
) t
where seqnum = 1;