我有一個模板製作的對象。這些物體上有幾個數據點,我測量每個零件上的每個數據點以查看零件在模板上的距離。我想採取最近的100次測量並找到它們的平均值和標準偏差。下面是具體關於我的表中的值:光標檢索數據集以拍攝AVG和STDEV
- reqt_id:每個不同reqt_id表示物體上的數據點
- 變種:每個變種是一個測量。
- INST_ID:每一個新的測量(VAR)得到一個INST_ID,所以這是用來找出測量是最近
因此,在總結,如果我的部分有5個不同的數據點,即時通訊測量,我將有5個不同的reqt_ids。如果我有500個Im測量部分,則每個reqt_id將會有500個var測量值。我想用我的SQL存儲過程做的事情是編寫一個光標,它將抓取來自某個reqt_id的最近100個var變量,然後取其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