给出表A和B,如下所示:
Table A Table B
┌────┬───┐ ┌────┬─────┬───────┐
│ id │ c │ │ id │ Aid │ value │
┝━━━━┿━━━┥ ┝━━━━┿━━━━━┿━━━━━━━┥
│ 1 │ 1 │ │ 1 │ 1 │ 50 │
├────┼───┤ ├────┼─────┼───────┤
│ 2 │ 0 │ │ 2 │ 1 │ 20 │
├────┼───┤ ├────┼─────┼───────┤
│ 3 │ 1 │ │ 3 │ 2 │ 75 │
└────┴───┘ ├────┼─────┼───────┤
│ 4 │ 3 │ 23 │
├────┼─────┼───────┤
│ 5 │ 3 │ 17 │
└────┴─────┴───────┘
如何获得满足条件B.value
的每个A.id
值的c=1
列的总和?
即,以下内容:
┌────┬───────┐
│ id │ value │
┝━━━━┿━━━━━━━┥
│ 1 │ 70 │
├────┼───────┤
│ 3 │ 40 │
└────┴───────┘
我已经尝试过了
SELECT A.id as id, SUM(B.value) as value
FROM A INNER JOIN B ON B.Aid = A.id
WHERE c = 1
但这只会返回以下内容:
┌────┬───────┐
│ id │ value │
┝━━━━┿━━━━━━━┥
│ 3 │ 110 │
└────┴───────┘
答案 0 :(得分:2)
我认为您需要group by
:
SELECT A.id as id, SUM(B.value) as value
FROM A INNER JOIN
B
on B.Aid = A.id
WHERE c = 1
GROUP BY A.id;