ぱっと思いつくのはunionで無理やり
mysql
1create table tbl (interview date ,decision date ,accept date, ng date);
2insert into tbl values
3('2016-06-09','2016-06-10','2016-06-11','2016-06-12'),
4('2016-06-09','2016-07-10','2016-07-11','2016-07-12'),
5('2016-08-09','2016-08-10','2016-08-11','2016-08-12'),
6('2016-09-09','2016-08-10','2016-09-11','2016-09-12'),
7('2016-10-09','2016-10-10','2016-10-11','2016-10-12'),
8('2016-11-09','2016-11-10','2016-11-11','2016-11-12');
SQL
1select month
2,sum((cap='interview')*c) as c1
3,sum((cap='decision')*c) as c2
4,sum((cap='accept')*c) as c3
5,sum((cap='ng')*c) as c4
6 from
7(select DATE_FORMAT(interview,'%Y%m') as month,'interview' as cap,count(*) as c from tbl group by month
8union select DATE_FORMAT(decision,'%Y%m') as month,'decision',count(*) from tbl group by month
9union select DATE_FORMAT(accept,'%Y%m') as month,'accept',count(*) from tbl group by month
10union select DATE_FORMAT(ng,'%Y%m') as month,'ng',count(*) from tbl group by month
11union select '201603','dummy',0
12union select '201604','dummy',0
13union select '201605','dummy',0
14union select '201606','dummy',0
15union select '201607','dummy',0
16union select '201608','dummy',0
17union select '201609','dummy',0
18union select '201610','dummy',0
19union select '201611','dummy',0
20union select '201612','dummy',0
21) as dummy
22group by month;
なんか効率的な方法がありそうな気がしますが・・・
SQL
1select month
2,sum(c1) as c1
3,sum(c2) as c2
4,sum(c3) as c3
5,sum(c4) as c4
6 from
7(select DATE_FORMAT(interview,'%Y%m') as month,count(*) as c1,0 as c2,0 as c3,0 as c4 from tbl group by month
8union select DATE_FORMAT(decision,'%Y%m') as month,0,count(*),0,0 from tbl group by month
9union select DATE_FORMAT(accept,'%Y%m') as month,0,0,count(*),0 from tbl group by month
10union select DATE_FORMAT(ng,'%Y%m') as month,0,0,0,count(*) from tbl group by month
11union select '201603',0,0,0,0
12union select '201604',0,0,0,0
13union select '201605',0,0,0,0
14union select '201606',0,0,0,0
15union select '201607',0,0,0,0
16union select '201608',0,0,0,0
17union select '201609',0,0,0,0
18union select '201610',0,0,0,0
19union select '201611',0,0,0,0
20union select '201612',0,0,0,0
21) as dummy
22group by month;
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。