【问题标题】:How can I have Sub Sum column in sql query?如何在 sql 查询中有 Sub Sum 列?
【发布时间】:2016-12-24 09:59:24
【问题描述】:

我在Sqlite中有下表

Person1     Person2     Amount
A           X           1000
A           Y           2000
A           Z           5000
B           X           3000
B           Y           4000

我如何编写一个查询来添加一个额外的列,它的值是列 Person1 中每个人的金额之和。

我需要以下结果:

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

但我需要所有行

【问题讨论】:

    标签: sql sqlite android-sqlite


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多