2017-03-09 7 views
0

私は以下の表を持っている:1つのクエリ内のsqliteの数とグループのすべての列

私は、各列をカウントし、グループにしたい
SCORE1 SCORE2 SCORE3 
P   P   F 
P   P   T 
D   P   F 
D   D   T 
P   P   F 
P   D   T 

ので、私は同様に、SCORE1SCORE2のためにPとDの数を取得SCORE3のTとFの数として計算します。

私は、これは本当に私が何かしたい場合は、グループ内の列のすべてのユニークな組み合わせのための行を返します。この

select SCORE1, count(SCORE1) as SCORE1_counts, 
     SCORE2, count(SCORE2) as SCORE2_counts, 
     SCORE3, count(SCORE3) as SCORE3_counts, 
from mytable 
group by SCORE1,SCORE2,SCORE3. 

しかし、クリアリーのようにそれを行っているかもしれません:

SCORE1 SCORE1_counts SCORE2 SCORE2_counts SCORE3 SCORE3_counts 
P   4    P   4    T   3 
D   2    D   2    F   3 

私はただ1つのsqliteクエリでも可能ですか?

+0

6つのサブクエリを書き出すことは可能ですが、それは愚かです。実際に私は同意する –

答えて

2

行の値を取得するのが最良だと思います。列ではなくです。これはあなたが望むことをしますか?

select 'SCORE1' as which, count(*) as counts, 
from mytable 
group by Score1 
union all 
select 'SCORE2' as which, count(*) as counts, 
from mytable 
group by Score2 
union all 
select 'SCORE3' as which, count(*) as counts, 
from mytable 
group by Score3; 
+0

。 Gordonに感謝します。 – brucezepplin

関連する問題