【发布时间】:2020-01-01 12:03:00
【问题描述】:
我正在尝试查询表以查找上一条记录。目前我已经尝试了各种解决方案,例如此代码,但我无法使其工作(见下文)
我要查询的字段来自此表[CMI_Industry_Workload].[dbo].[Gantt_Value],分别是[ProjectName] 和[TimeStamp]。
第一个字段是字符串字段,第二个字段是时间戳字段。
select t.*
from (Select t.*
row_number() over (partition by [ProjectName] order by [Timestamp]) as seqnum,
count(*) over (partition by [ProjectName]) as cnt
from [CMI_Industry_Workload].[dbo].[Gantt_Value] t
) t
where seqnum in (1, cnt - 1, cnt);
所以我希望得到的不是最近的记录,而是之前的记录。
非常感谢
加里
【问题讨论】:
-
SQL Server 2008 MySQL Server 2008。事实上没有 MySQL Server 2008 这样的东西。而且,你的查询肯定来自 SQL Server。
-
是的,对不起,我搞混了
-
“上次记录之前”是指倒数第二个吗?如果是这样,升序中的倒数第二行是降序中的 2nd 行。看来你知道如何使用
ROW_NUMBER,所以你应该能够在那里找到你需要的东西。
标签: sql-server timestamp