2017-10-04 3 views
0

Hallo Summieren über habe ich eine Tabelle wie diesemehrere Spalten

Year Column1 column2 column3 
2015  A    B    C 
2015  D    A    B 
2016  F    C    A 

Und ich muss in der Lage sein über die Spalte zu summieren, wie oft eine bestimmte Untergruppe auftaucht. Was ich möchte, dass die Übersichtstabelle aussehen ist dieses

Year Letter count 
2015 A  2 
2016 A  1 
2015 B  2 

Wenn jemand mir dabei helfen kann ich es wirklich schätzen würde!

Antwort

1

können Sie union all verwenden, um die Daten auseinander zu brechen und dann group by, um es wieder zusammen:

select year, letter, count(*) 
from ((select year, column1 as letter from t) union all 
     (select year, column2 as letter from t) union all 
     (select year, column3 as letter from t) 
    ) yc 
group by year, letter; 

Für eine Reihe von bestimmten Buchstaben, fügen Sie eine where letter in ('A', 'B') Klausel.