我在Sqlite
中有以下表格Person1 Person2 Amount
A X 1000
A Y 2000
A Z 5000
B X 3000
B Y 4000
如何编写查询以添加额外列,其值为列Person1中每个Person的Amount总和。
我需要以下结果:
Person1 Person2 Amount SumAmountPerson1
A X 1000 8000
A Y 2000 8000
A Z 5000 8000
B X 3000 5000
B Y 2000 5000
我的查询是:
select *, Sum(Amount) from MyTable
GROUP by Person1
但它在Sqlite中返回以下结果集:
Person1 Person2 Amount SumAmountPerson1
A X 1000 8000
B X 3000 5000
但我需要所有行
答案 0 :(得分:3)
SQLite不支持窗口函数,因此获取结果的一个选项是使用子查询来聚合第一个人的金额,然后将其连接回原始表。
SELECT t1.Person1,
t1.Person2,
t1.Amount,
t2.SumAmountPerson1
FROM yourTable t1
INNER JOIN
(
SELECT Person1, SUM(Amount) AS SumAmountPerson1
FROM yourTable
GROUP BY Person1
) t2
ON t1.Person1 = t2.Person1