2010-11-29 10 views
3

Ich habe eine Tabelle wie folgt aus:Wie gruppiert man die Summen nach Wochentagen in MySQL?

id | timestamp | type 
----------------------- 
1 2010-11-20 A 
2 2010-11-20 A 
3 2010-11-20 B 
4 2010-11-21 A 
5 2010-11-21 C 
6 2010-11-27 B 

und ich brauche die Zeilen für jede Art zu zählen, nach Wochentag gruppiert; wie folgt:

weekday | A | B | C 
-------------------------- 
5   2  2  0 -- the B column equals 2 because nov 20 and nov 27 are saturday 
6   1  0  1 

Was wäre die einfachste Lösung dafür?
ich nichts dagegen haben, Ansichten verwenden, Variablen, Unterabfragen usw.

Antwort

5

Verwendung:

SELECT WEEKDAY(t.timestamp) AS weekday, 
     SUM(CASE WHEN t.type = 'A' THEN 1 ELSE 0 END) AS a, 
     SUM(CASE WHEN t.type = 'B' THEN 1 ELSE 0 END) AS b, 
     SUM(CASE WHEN t.type = 'C' THEN 1 ELSE 0 END) AS c 
    FROM YOUR_TABLE t 
GROUP BY WEEKDAY(t.timestamp) 
+0

Vielen Dank! Es war viel einfacher als ich dachte! – arturo

Verwandte Themen