sql - 从字段中获取价值
问题描述
我试图学习 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
谢谢你的阅读
解决方案
您可能正在寻找一个窗口函数来计算运行平均值:
select t.*,
avg(value) over (order by day rows between 8 preceding and 1 preceding) as running_avg
from t;
推荐阅读
- mongodb - mongo 索引字段存在
- php - 在 Vue js 组件中使用 PhP Variavle
- r - 应用 gtsummary 包中的 tbl_summary 函数时在 R 中缓存目录错误消息
- sonarqube - SonarQube 硬编码凭证在配置文件中对安全性敏感
- php - Swagger:swagger.json 接口
- jquery - 在 ReactJS 中实现 3D 标签云
- javascript - 使用 jsx 时,我面临的反应必须在范围内,这个错误的 tyoe ......?
- regex - 修剪列中的特定值
- .net - 在 ASP.NET Core 中删除该用户时注销该用户
- r-exams - R/examsexams2blackboard 试题顺序随机分配