我有一个表从日志(权重)记录浮点值。我想动态评估此曲线积分的绝对值。我试图根据梯形近似执行一些简单的代数。一个的采样率(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