【发布时间】:2021-01-18 17:15:50
【问题描述】:
对于以下问题,我需要一些有关 MySQL 查询的帮助。
我有两个表 A (id, ref_id) 和 B (ref_id (primary key), class, pulse),其中 A.ref_id 存在于 B.ref_id 中。 ref_id 是从 1 开始的整数值,是 B 的 P_k。
A.id | A.ref_id
1 | 2
2 | 3
B.ref_id | B.pulse | B.class
1 | 100 | X
2 | 50 | Y
3 | 100 | X
我想要做的是创建一个表,其中所有脉冲值的总和对应于所有 B.ref_id 小于 A.ref_id。此外,仅应考虑其 B.class 与从 A.ref_id 引用的 B.ref_id 的 B.class 相同的那些脉冲。例如,
A.ref_id | sum
2 | 50
3 | 200
在此示例中,值为 2 的 A.ref_id 指的是相应的 B.ref_id,因此具有 B.class Y。因为我想要所有 B.ref_id
有人可以帮我解决这个问题吗?
我在 MySQL 中需要一些类似的东西:
SELECT A.ref_id, sum
FROM A
JOIN (SELECT class, SUM(B.pulse) as sum
FROM B WHERE B.ref_id<=A.ref_id
GROUP BY B.class) t
ON t.class= (SELECT class FROM B WHERE B.ref_id=A.ref_id)
上述方法不起作用,因为我无法在子查询 (t) 中引用 A.ref_id。没有这个条件的加入对我想做的事情没有帮助。
谢谢!!
【问题讨论】: