Как предложил arce.est во втором примере кода, вы можете назначить номер строки, который позволит вам фильтровать данные так, как вы их описали:
declare @Samples as Table ( Id Int, En_Id Int, Rn_Id Int, [Value] VarChar(5), [Date] DateTime );
insert into @Samples ( Id, En_Id, Rn_Id, [Value], [Date] ) values
( 1234, 1756, 605,'13.2', '2019-08-14 05:29:00.000' ),
( 1234, 1756, 605,'15.5', '2019-07-17 10:14:00.000' );
select Id, En_Id, Rn_Id, [Value], [Date] -- , RN -- To see the values assigned.
from (
select Id, En_Id, Rn_Id, [Value], [Date],
-- Generate a row number grouped by Id, En_Id, Rn_Id ordered by ascending [Date] .
Row_Number() over ( partition by Id, En_Id, Rn_Id order by [Date] ) as RN
from @Samples ) as Placeholder
where RN = 1; -- Output only the first row from each Id, En_Id, Rn_Id group.
Вы можете закомментировать where
добавьте RN
к внешнему списку select
, чтобы увидеть, как присваиваются номера строк.