首页 > 解决方案 > 从字段中获取价值

问题描述

我试图学习 SQL,但我偶然发现了一个我自己无法解决的问题。我有一张桌子,想从中获得一个特定的价值,但似乎无法解决它。

我想创建直到今天 2 的平均值并为今天 1 创建一个 CASE 以检查其值 (12) 是否偏离太多。

问题:我无法从 26.07.2019 获取值;日期是 (sysdate - 8) --> sysdate

| day        | value  | 
|------------|------- |
| 19.07.2019 | 10     | <-- START
| 20.07.2019 | 13     |
| 21.07.2019 | 13     |
| 22.07.2019 | 12     |
| 23.07.2019 | 13     |
| 24.07.2019 | 18     |
| 25.07.2019 | 16     | <-- STOP AVERAGE
| 26.07.2019 | 12     | <-- COMPARE AVERAGE WITH THIS
| 27.07.2019 | 5      | <-- IGNORE SINCE DATA FROM TODAY NOT COMPLETE

谢谢你的阅读

标签: sqloracle

解决方案


您可能正在寻找一个窗口函数来计算运行平均值:

select t.*,
       avg(value) over (order by day rows between 8 preceding and 1 preceding) as running_avg
from t;

推荐阅读