2017-03-16 61 views
-1

我使用SQLite使得在Android工作室一個項目,我有一個問題複雜的分組SQLite的查詢

我有類似如下的表:

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部分,我不知道如何才能得到正值和負值的總和。你能幫我解決這個問題嗎?

在此先感謝。

+0

很明顯,你必須組,並使用像'SUM(CASE當n> 0,則n ELSE 0 END)AS TotalPositive'等等...:您可以使用CASE做有條件聚集 – Selvin

回答

1

您想通過M而不是N進行分組。由M

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;