我遇到查询问题。Tsql group by clause
这是数据(由时间戳顺序):我需要提取不同的值
Data
ID Value Timestamp
1 0 2001-1-1
2 0 2002-1-1
3 1 2003-1-1
4 1 2004-1-1
5 0 2005-1-1
6 2 2006-1-1
7 2 2007-1-1
8 2 2008-1-1
和日期的第一次出现。这里的例外是我需要将它们分组,只有在该时间段内没有被新值打断。 所以我需要的数据是:
ID Value Timestamp
1 0 2001-1-1
3 1 2003-1-1
5 0 2005-1-1
6 2 2006-1-1
我做了一个复杂的查询这项工作,但我肯定有一个简单的方法来做到这一点,它只是不能相信。谁能帮忙?
这就是我开始 - 可能可以与此一起工作。这是一个查询,它应该在值更改时进行定位。
> SELECT * FROM Data d1 join Data d2 ON d1.Timestamp < d2.Timestamp and
> d1.Value <> d2.Value
它可能可以用row_number子句很好地使用,但不能管理它。
向我们展示查询,最好让我们帮您改进它 – stb
SQL-Server的哪个版本? 2012年版本中有许多方法可以在2005或2000版本中选择。 –