,所以我必须具有字段的表: 因此,该值 - 1023 QualityCode - 53可以发生在随机时间,并为每个MeterNum都有大约24个值,ROW_ID增加到24,然后从1开始新的MeterNum,我需要用平均值46和21替换1023(row_num 19 & 21),如果没有至少添加另一个别名列选择语句。我试图拿出案例陈述,但我无法平均价值,有人可以帮助这一点。如何使用case语句在SQL中符合条件的记录平均连续值
0
A
回答
3
您可以使用Lag和Lead做这样的逻辑的CASE语句的内部:
UPDATE TABLE
SET VALUE = CASE
WHEN VALUE = 1023
THEN (
Lag(Value, 1) OVER (PARTITION BY meternum ORDER BY row_id ASC)
+ Lead(Value, 1) OVER (PARTITION BY meternum ORDER BY row_id ASC)
)/2
ELSE VALUE
END
滞后和铅的窗口功能。滞后将返回指定的记录数(这里我们回去1)并获取一个值。它通过PARTITION BY子句确定哪些记录(这里只返回具有相同的MeterNum的记录),并通过ORDER BY子句(通过row_id在这里排序)确定这些记录的顺序。
+0
非常感谢,完美无缺。但有一个问题,如果值= 1023的值超过2个时间间隔一致,那么我应该将第一个和最后一个相关值取平均值,并将其应用于多个1023值,例如: Ex:值为24,1023 ,1023,1023,32,那么我应该采用24和32的平均值,并将这个值应用于所有三个1023值。 你能为此提出任何建议吗? @JNevill – user1960217
相关问题
- 1. 如何在基于SQL CASE语句的WHERE条件中过滤记录
- 2. 如何在sql case语句中使用> =条件?
- 3. 的Oracle SQL条件外连接使用case语句
- 4. 在select语句中使用case条件
- 5. 如何在条件间使用SQL CASE语句
- 6. SQL:如何在一条SQL语句中查找总数和平均值?
- 7. 如何在符合条件的sql中选择多条记录
- 8. 如何平均只有记录符合Access中某些条件的字段?
- 9. 使用proc在sas中插入一条平均记录sql
- 10. SQL CASE语句值
- 11. SQL如何检查连续N个记录是否符合条件?
- 12. SQL - 如何查找带有LIMIT的SQL语句的平均值?
- 13. 如何在sql中重用case语句
- 14. 在连接条件下的SQL case语句
- 15. SQL Developer - 带条件的CASE语句
- 16. Case语句与WHERE条件的SQL
- 17. 如何在vb.net 2008中连续检查记录是否符合条件
- 18. 如何在oracle中使用case语句更改2列值sql
- 19. 在Sql中,如何使用case语句更改值?
- 20. 使用rails计算一条记录中某行的平均值
- 21. 条件CASE语句语法
- 22. 如何在sql 2000的where子句中使用case语句
- 23. 如何使用标记来平均不连续数据块?
- 24. 如何在Dropwizard中记录SQL语句
- 25. 使用case语句插入值SQL Server
- 26. SQL case语句和使用返回值
- 27. 如何在JOIN语句中使用CASE根据条件连接两个表?
- 28. 如何在MySQL中记录连续的记录集合
- 29. 在SQL中的左外部连接中使用CASE语句
- 30. 如何在有条件的地方使用case语句?
请回到漂亮的文字列表。如果任何人想要复制数据以进行测试以作出答案,则表格的图片是无用的。只需在每行上用4个空格缩进文本列表,它将以书面形式显示(请参阅我的编辑,然后再上一次编辑) – JNevill