Я не уверен, где пошло не так, но, похоже, функция LAST_VALUE не возвращает желаемый результат. То, что я пытаюсь сделать это следующим образомФункция LAST_VALUE в SQL Server 2012
Create table #temp(
a varchar(10),
b varchar(10),
c datetime
)
insert into #temp
Values('aa','bbb','2014-10-15 16:39:41.000'),
('aa','bbb','2014-10-16 06:00:04.000')
select a,b,c,
FIRST_VALUE(c) over (partition by a, b order by c asc) as first_date,
LAST_VALUE(c) over (partition by a, b order by c asc) as last_date,
row_number() over (partition by a, b order by c asc) as rn
from #temp
В результате я получил это следующим образом, который имеет различное последнее значение.
a | b | c | first_date | last_date | rn
aa | bbb | 2014-10-15 16: 39: 41.000 | 2014-10-15 16: 39: 41.000 | 2014-10-15 16: 39: 41.000 | 1
aa | bbb | 2014-10-16 06: 00: 04.000 | 2014-10-15 16: 39: 41.000 | 2014-10-16 06: 00: 04.000 | 2
возможно дубликат [SQL: Last \ _value() возвращает неправильный результат (но сначала \ _value() работает отлично)] (http://stackoverflow.com/questions/15388892/sql-last-value- Возвращать-неправильно-результат-но-первокурсников оценочными работы-штраф) –