2016-04-12 9 views
1

Ich muss eine Art von SELECT ... COUNT() ... GROUP BY 2 Spalten (Monat und Typ) Anfrage auf einer SQLite-Datenbank auf Android zu tun. Ich konnte auf die folgende Anfrage:Gruppe durch mehrere Spalten Anfrage mit Ergebnis in einer einzigen Zeile - Android SQLite

select Month, Type, Count() 
from MyTable 
group by Month, Type 

Mein Problem ist, dass ich das Ergebnis in einem Android Listview anzeigen möchten einen Cursor zu verwenden mit:

  • eine einzige Zeile für jeden Monat
  • COUNTs der (festen und bekannten Anzahl von) Typen.

Vielleicht so etwas wie:

select Month, Count(Type = A), Count(Type = B), Count(Type = C) 
from MyTable 
group by Month 

Datenbank

Month | Type 
-------- --------- 
Feb 15 | A 
Feb 15 | B 
Dec 15 | A 
Dec 15 | A 
Dec 15 | B 
Dec 15 | C 

Erwartetes Ergebnis

Month | 'COUNT(A)' | 'COUNT(B)' | 'COUNT(C)' 
-------- -------------- --------------- ------------- 
Feb 15 | 1   | 1   | 0 
Dec 15 | 2   | 1   | 1 

Ist das mögl Vielleicht?

Antwort

1
select 
month, 
sum(case when "Type" = 'A' then 1 else 0 end) as "count(a)", 
sum(case when "Type" = 'B' then 1 else 0 end) as "count(b)", 
sum(case when "Type" = 'C' then 1 else 0 end) as "count(c)" 
from 
mytable 
group by 
month 
Verwandte Themen