,所以我必須具有字段的表: 因此,該值 - 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