sql - 乘以计数结果
问题描述
我有一个名为 TableA 的表,有两列,Amount 和 A_ID(唯一 ID),还有一个名为 TableB 的表,其中有一列 B_ID(另一个唯一 ID)
在 TableA 上进行选择会显示如下数据:
Amount | A_ID
1378 | 1
1839 | 2
1237 | 1
而表 B 很简单:
B_ID
1
2
我希望能够计算 A_ID 的条目数量,它也存在于 B_ID 中,然后将 TableA Amount 乘以计数函数的结果。这是我尝试过的:
SELECT (
SELECT Count(*)
FROM TableA a, TableB b
where a.A_ID = b.B_ID
) id_count, SUM(id_count * a.amount)
from TableA a
GROUP BY a.A_ID
预期结果为:
total_Amount | A_ID
2615 | 1
1839 | 2
解决方案
我希望能够计算 A_ID 的条目数量,它也存在于 B_ID 中,然后将 TableA Amount 乘以计数函数的结果。
我想你只是想要:
select sum(a.amount)
from tablea a join
tableb b
on a.a_id = b.b_id;
如果你想要这个a_id
:
select a.a_id, sum(a.amount)
from tablea a join
tableb b
on a.a_id = b.b_id
group by a.a_id;