首页 > 解决方案 > MySQL:基于第 3 列中的值的不同行中 2 列的 AVG 差异(单独的表)

问题描述

我需要找到:

SIGNAL = 3 的每一行的 AVG(S1.CLS - S3.OPN)。

(S1 表示当 SIGNAL = 1 时,而 S3 表示当 SIGNAL = 3 时,我假设这些会以某种方式成为派生表?)

要求:

我的数据是通过来自 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 行

谢谢!

标签: mysql

解决方案


推荐阅读