相关疑难解决方法(0)

数据值变化的查询(持续时间)不同

我正在尝试编写一个查询来获取表中状态的持续时间。此查询需要在 SQL Server 2008 中工作。

假设我有下表:

Key Value   RecordDate
1   1   2012-01-01
2   1   2012-01-02
3   1   2012-01-03
4   5   2012-01-05
5   5   2012-01-05 12:00:00
6   12  2012-01-06
7   1   2012-01-07
8   1   2012-01-08
Run Code Online (Sandbox Code Playgroud)

我想得到以下结果

Value StartDate   EndDate     Duration
1     2012-01-01  2012-01-05  4 days
5     2012-01-05  2012-01-06  1 days
12    2012-01-06  2012-01-07  1 days
1     2012-01-07  NULL        NULL
Run Code Online (Sandbox Code Playgroud)

基本上我想在它改变之前获取值的持续时间。

我正在接近某个地方,但仍然无法弄清楚:

SELECT [Key], [Value],  
       MIN(RecordDate) OVER(PARTITION BY [Value]) as 'StarDate',
       MAX(RecordDate) OVER(PARTITION BY [Value]) as 'EndDate',
       DATEDIFF(day, (MIN(RecordDate) OVER(PARTITION BY [Value])), …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

sql-server ×1

sql-server-2008 ×1