复杂的分组SQLite查询

时间:2017-03-16 13:49:05

标签: android sqlite group-by sum

我正在使用SQLite在android studio上制作一个项目,我遇到了问题

我有一张类似于以下内容的表格:

M   N
1   100
1   -50
1   10
1   -20
2   100
2   -15
3   40

什么查询会得到以下结果:

M   Total   TotalPositive   TotalNegative
1   40      110             -70
2   85      100             -15
3   40      40              0

我写了以下查询:

SELECT M, SUM(N) AS 'Total' FROM tablename GROUP BY N;

我只能得到M和Total部分,我不知道我怎么才能得到正负值的总和。能帮助我吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您希望按M而不是N进行分组。您可以使用CASE进行条件聚合:

select
    M,
    sum(N) total_sum,
    sum(case when N > 0 then N else 0 end) total_positive,
    sum(case when N < 0 then N else 0 end) total_negative
from your_table
group by M;