2010-11-29 25 views
3

私はこのようなテーブルがあります。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 

を、私は平日でグループ化された各タイプのための行をカウントする必要があります。次のようになります。

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 

これに対して最も簡単な解決策は何ですか?
などIビュー、変数、サブクエリを使用して気にしない、

答えて

5

用途:

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

どうもありがとう!それは思ったよりずっと簡単でした! – arturo

関連する問題