我有一個表從日誌(權重)記錄浮點值。我想動態評估此曲線積分的絕對值。我試圖根據梯形近似執行一些簡單的代數。一個的採樣率(B-A = 1):MS SQL服務器代數語法
(b-a)((f(a)+f(b))/2 - f(a))
的值F(A)和f(b)中表示記錄在我的SQL Server表2個最近的值。我已經嘗試與評價;錯誤如下:
SELECT TOP 2
SUM(Scale_Weight) OVER(ORDER BY t_stamp DESC)/2.0
FROM table
這個查詢評估,而只是劃分中的最新值以2:
SELECT
SUM(Scale_Weight) OVER(ORDER BY t_stamp DESC)/2.0
FROM table
正如你所看到的,我沒有嘗試因爲我不知道如何引用特定的行(單元格?),所以「絕對值」或「最近第二次」值的相減值。作爲一個noob,我覺得這個數學在單個查詢中是可行的,我只是找不到合適的語法。提前致謝。
所以更新更清楚:
感謝輸入ps2goat,但由於某種原因,我無法實現「TOP」的功能,所以我現在有這樣的:
SELECT ABS(SUM(Scale_Weight) OVER(PARTITION BY quality_code
ORDER BY t_stamp
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)/2.0)
FROM table
還需要減去前面的值,例如:
SELECT ABS(SUM(Scale_Weight) OVER(PARTITION BY quality_code
ORDER BY t_stamp
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)/2.0
- 1 PRECEDING)
FROM table
任何想法引用上述減法值?
感謝輸入ps2goat,但由於某種原因,我無法實現 「TOP」 的功能,所以我現在有這樣的: SELECT ABS(SUM(Scale_Weight)OVER( PARTITION BY quality_code \t ORDER BY t_stamp \t ROWS BETWEEN PRECEDING AND CURRENT ROW)/ 2。0) FROM表 仍然需要減去先前值,是這樣的: SELECT ABS(SUM(Scale_Weight)OVER(PARTITION BY quality_code \t ORDER BY t_stamp \t行之間1 PRECEDING AND CURRENT ROW)/2.0 - 1 PRECEDING) FROM表 任何想法,以引用上述減法值? – user2795886 2014-10-17 14:15:07
你使用的是什麼版本的sql server? – ps2goat 2014-10-17 14:38:40
我最初應該包括這個,但我使用第三方OPC軟件通過他們的MSSQL翻譯器自動生成我的表(我認爲這就是爲什麼「TOP」不起作用)。我可以得到版本,但不知道它會有幫助。 – user2795886 2014-10-17 15:20:17