如何在sql查询中使用Sub Sum列?

时间:2016-12-24 09:59:24

标签: sql sqlite android-sqlite

我在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

但我需要所有行

1 个答案:

答案 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