mysql - MySQL:基于第 3 列中的值的不同行中 2 列的 AVG 差异(单独的表)
问题描述
我需要找到:
SIGNAL = 3 的每一行的 AVG(S1.CLS - S3.OPN)。
(S1 表示当 SIGNAL = 1 时,而 S3 表示当 SIGNAL = 3 时,我假设这些会以某种方式成为派生表?)
要求:
- “S1.CLS”必须是“S3.OPN”行之后最近/最小的行/id。即- MIN(S1.ID) > S3.ID
- S1.YRWK = S3.YRWK
我的数据是通过来自 3 个单独表的联接的派生表汇集在一起的。
样本数据:
ID | DT | YRWK | 开放网络 | CLS | 信号 |
---|---|---|---|---|---|
124 | 2005 年 9 月 6 日 18:16 | 200536 | 1138.5 | 1138.5 | 3 |
216 | 2005 年 9 月 6 日 21:25 | 200536 | 1137.75 | 1138 | 3 |
230 | 2005 年 9 月 6 日 21:53 | 200536 | 1137.5 | 1137.5 | 1 |
290 | 2005 年 9 月 7 日 0:20 | 200536 | 1138.25 | 1138.5 | 3 |
299 | 2005 年 9 月 7 日 0:32 | 200536 | 1138.25 | 1138.25 | 1 |
315 | 2005 年 9 月 7 日 1:02 | 200536 | 1138.5 | 1138.5 | 3 |
318 | 2005 年 9 月 7 日 1:05 | 200536 | 1138.5 | 1138.25 | 1 |
320 | 2005 年 9 月 7 日 1:07 | 200536 | 1138 | 1137.75 | 1 |
322 | 2005 年 9 月 7 日 1:09 | 200536 | 1138 | 1137.75 | 1 |
325 | 2005 年 9 月 7 日 1:12 | 200536 | 1138.25 | 1138.25 | 3 |
338 | 2005 年 9 月 7 日 1:25 | 200536 | 1138.5 | 1138.25 | 1 |
362 | 2005 年 9 月 7 日 1:53 | 200536 | 1138 | 1138.25 | 3 |
365 | 2005 年 9 月 7 日 1:57 | 200536 | 1137.75 | 1137.75 | 1 |
374 | 2005 年 9 月 7 日 2:08 | 200536 | 1138 | 1138.25 | 3 |
376 | 2005 年 9 月 7 日 2:10 | 200536 | 1138.25 | 1138.5 | 3 |
406 | 2005 年 9 月 7 日 2:42 | 200536 | 1138 | 1138 | 3 |
预期答案 (ID= 124,CLS= 1138.5)-(ID= 230,OPN= 1137.5),
(ID= 216, CLS= 1138) - (ID= 230, OPN= 1137.5),
(ID= 290, CLS= 1138.5) - (ID= 299, OPN= 1138.25),
(ID= 315, CLS= 1138.5) - (ID= 318, OPN= 1138.5)
然后把所有这些差异和平均在一起。
注意- 最后一行 - 注意它如何从第 318 行获取 OPN,而不是第 320 或 322 行
谢谢!
解决方案
推荐阅读
- r - 在 kmeans 图中 Dim1 和 Dim2 是什么意思?
- mysql - 我有这样的日期列“20210527181345”如何将此字符串转换为时间戳 SQL
- woocommerce - WooCommerce Flexslider 回调
- angular - VS Code、git bash、ng serve 停止重新编译应用程序。为什么?
- r - R闪亮如何使用动态UI更新DateRange
- r - 如何定义类和构造函数以及如何在 R / RStudio 中调用它们
- node.js - 如何使用 JWT 在 Express 中验证单个路由(无代码重复)的多种类型用户的身份验证令牌?
- python - 从 URL OpenCV 读取图像会导致更大的文件大小
- java - 为 HttpServleRequest 映射 feignClient
- server-side-includes - 如何使用服务器端包含 (SSI) 构建循环计数器?