2012-03-30 9 views
2

私は以下のようにsqliteデータベースにテーブルを持っています。例としてこの仕事に「選択」を使う方法

 

    id status 

    ============= 
    x  0 
    y  1 
    y  0 
    x  1 
    x  1 
    z  0 

、iが状態(0/1)を用いて3つの異なるIDを有し、xが1時間ステータス= 0で、テーブルで3回発見された、2回のステータス= 1、Y表中で2回検出され、status = 0で1回、status = 1で1回です。

このように、私は次の結果を得るために '選択'を使いたいと思いますが、この仕事をする方法はありますか?どんな助けもありがとう。おかげ

 

    id  sum(status=0)  sum(status=1) total(status) 
    ======================================================== 
    x  1     2    3 
    y  1     1    2 
    z  1     0    1 

答えて

3

私は、これは動作するはずと信じて:

SELECT id, 
    SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END) AS SUM_STATUS_0, 
    SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) AS SUM_STATUS_1, 
    SUM(status) AS SUM_STATUS 
FROM TABLE 
GROUP BY id 
+0

おかげで、これは仕事をしました。 – user307016

0

また、これは動作するはずですが、のようにnull値がcountによってカウントされません。

select id, 
    count(case when status = 0 then 1 end) Status0, 
    count(case when status = 1 then 1 end) Status1, 
    count(*) StatusAll 
from t 
group by id 
+0

あなたの答えをありがとう – user307016

関連する問題