ある時点での変数名とその値のリストを返す TSQL クエリがあります。現在、日時列を切り捨てて、分単位の結果セットを提供しています。
必要なデータの間隔を指定できると、非常に便利です。x 秒ごと、x 分ごと、または x 時間ごと。
選択した値を集計したくないので、GROUP BY できません。
これが私の現在のクエリです:
SELECT time, var_name, value
FROM (
SELECT time, var_name, value, ROW_NUMBER() over (partition by var_id, convert(varchar(16), time, 121) order by time desc) as seqnum
FROM var_values vv
JOIN var_names vn ON vn.id = vv.tag_id
WHERE ( var_id = 1 OR var_id = 2)
AND time >= '2013-06-04 00:00:00' AND time < '2013-06-04 16:20:17'
) k
WHERE seqnum = 1
ORDER BY time;
そして結果セット:
2013-06-04 00:20:52.847 Random.Boolean 0
2013-06-04 00:20:52.850 Random.Int1 76
2013-06-04 00:21:52.893 Random.Boolean 1
2013-06-04 00:21:52.897 Random.Int1 46
2013-06-04 00:22:52.920 Random.Boolean 1
2013-06-04 00:22:52.927 Random.Int1 120
また、完成させるために、結果セットに必要な var_id を選択するために WHERE 句を変更する機能を保持したいと考えています。