,所以我必须具有字段的表: 因此,该值 - 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语句中使用> =条件?
- 2. SQL:如何在一条SQL语句中查找总数和平均值?
- 3. 如何在符合条件的sql中选择多条记录
- 4. 如何平均只有记录符合Access中某些条件的字段?
- 5. SQL如何检查连续N个记录是否符合条件?
- 6. Case语句与WHERE条件的SQL
- 7. 如何在oracle中使用case语句更改2列值sql
- 8. 使用rails计算一条记录中某行的平均值
- 9. 使用case语句插入值SQL Server
- 10. 如何使用标记来平均不连续数据块?
- 11. 如何在Dropwizard中记录SQL语句
- 12. 在SQL中的左外部连接中使用CASE语句
- 13. 如何在MySQL中记录连续的记录集合
- 14. 如何在有条件的地方使用case语句?
- 15. 使用多个条件单case语句
- 16. SQL在case语句中使用count
- 17. SQL CASE语句对战条件语句编程语言
- 18. SQL case语句更改值
- 19. CASE语句WHERE子句中!=条件
- 20. 在where子句中使用if语句或case语句sql 2012
- 21. 平均符合条件的Oracle
- 22. 在case语句中选择语句sql
- 23. 符合条件语句后复制值?
- 24. 带R条件语句的汇总滚动平均值
- 25. where子句中的SQL Case语句指定条件?
- 26. 如何使用SQL条件语句
- 27. 如何使用Case语句
- 28. SQL申请合计平均有条件
- 29. 如何使用Case语句为sql编写连接?
- 30. SQL CASE语句
请回到漂亮的文字列表。如果任何人想要复制数据以进行测试以作出答案,则表格的图片是无用的。只需在每行上用4个空格缩进文本列表,它将以书面形式显示(请参阅我的编辑,然后再上一次编辑) – JNevill