テンプレートからオブジェクトを作成しています。これらのオブジェクトにはいくつかのデータポイントがあり、すべてのパーツの各データポイントを測定して、パーツがテンプレートからどれだけ離れているかを確認します。最新の 100 個の測定値を取得し、それらの平均と標準偏差を見つけたいと考えています。私のテーブル値の詳細は次のとおりです。
- reqt_id: それぞれの異なる reqt_id は、オブジェクトのデータポイントを表します
- var: 各 var は 1 つの測定値です。
- inst_id: すべての新しい測定値 (var) は inst_id を取得するため、これを使用して最新の測定値を特定します
要約すると、パーツに測定対象の 5 つの異なるデータポイントがある場合、5 つの異なる reqt_id を持つことになります。測定する部品が 500 個ある場合、reqt_id ごとに 500 個の変数測定が行われます。SQL ストアド プロシージャでやりたいことは、特定の reqt_id から最新の 100 変数の測定値を取得し、その AVG と STDEV を取得して、次のものに移動するカーソルを作成することです。理想的には、私のテーブルは次のようになります。
..REQT_ID..|..AVG..|..STDDEV..
..0001........|..0.32..|..0.0012.....
..0002........|..0.27..|..0.0005.....
以下は、これまでのカーソルの内容です。今のところうまくいかないので、何が欠けているのか疑問に思っていました。
DECLARE cursor_reqt_ids CURSOR FOR
SELECT r.reqt_id, AVG(r.[var]), STDEV(r.[var])
FROM RESULTS r
DECLARE @reqt_id AS INT
OPEN cursor_reqt_ids
FETCH NEXT FROM cursor_reqt_ids INTO @reqt_id
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT TOP 100 r.[var]
FROM RESULTS r
WHERE r.[var] != 0
ORDER BY r.inst_id DESC
END
CLOSE cursor_reqt_ids
DEALLOCATE cursor_reqt_ids