【发布时间】:2016-11-02 06:33:59
【问题描述】:
提前谢谢你。
我有一个Mytable1:
Site_name | date& Time |PowerOutput
xyz001 |2013-07-21 01:00:00.000 |192
xzu001 |2013-07-21 02:00:00.000 |189
abf003 |2013-07-21 03:00:00.000 |0
ACT0001 |2013-07-21 04:00:00.000 |178
如果为零,我想计算上一行和下一行的平均值。
我的输出表应该是:
Sitename |date&time |Power_output
xyz001 |2013-07-21 01:00:00.000 |192
xzu001 |2013-07-21 02:00:00.000 |189
abf003 |2013-07-21 03:00:00.000 |189
ACT0001 |2013-07-21 04:00:00.000 |178
逻辑是:
((上一个值-下一个值)/上一个值) *100
((上一个值-下一个值)/上一个值)*100 >=5, 如果这是真的,那么它应该保持为零。
【问题讨论】:
-
SELECT [DATE&Time],site_name,lead([DATE&Time],1,1) OVER (ORDER BY site_name) As Max, lag([DATE&Time],1,1) OVER (ORDER BY site_name) As Min FROM [dbo].[Mytable] where [pr_output] =0 我使用 *lag 和 lead * 来确定值为零的每小时间隔。
-
我将获得以百万为单位的值,我无法每次都更新这些值。他们是通过 SSIS 做到这一点的另一种方式吗
标签: sql sql-server ssis