предположим, у меня есть таблица значений с плавающей точкой со столбцами Value_ID, ValueTime, Value.
Если я сделаю это:
SELECT t.IntervalGroup
, Min(t.Value) as MinValue
, Max(t.Value) as MaxValue
, COUNT(t.Value) as #Values
FROM (
SELECT Value
, Valuetime
, (DATEDIFF(MINUTE, '2010-09-24 00:00:00', ValueTime) / 10) AS IntervalGroup
FROM [testdata].[dbo].T003ValueFloat
WHERE Tag_Id = 272 and ValueTime between '2010-09-24' and '2010-09-26'
) t
GROUP BY t.IntervalGroup
having t.IntervalGroup < 6
order by t.IntervalGroup asc
Я получаю такой результат:
IntervalGroup MinValue MaxValue #Values
------------- ---------------------- ---------------------- -----------
0 7,48281145095825 8,18281173706055 365
1 7,34531164169312 8,10468673706055 364
2 7,29062461853027 8,09062480926514 362
3 6,76249933242798 8,02812385559082 356
4 6,77031183242798 8,47656154632568 362
5 7,41874933242798 8,09374904632568 364
(6 row(s) affected)
Итак, я знаю количество значений за период (IntervalGroup) и абсолютное минимальное / максимальное значение этого периода.
Но мне также нужно знать Value_IDs соответствующих значений min / max.
Так что я хотел бы получить что-то вроде этого:
IntervalGroup MinValue Value_IDofMinValue MaxValue Value_ID_ofMaxValue #Values
------------- --------- ------------------- ----------- ------------------- -------
0 7,482811 12345 8,1828117 23456 365
Кто-нибудь может мне помочь?
ТИА,
Sascha