我需要为以下结果编写MySQ查询 我使用了以下查询来获取以下内容
select date(modified_date) as date,category_rating,count(*) from fms_process_feedback group by date,category_rating;
Date subcategory count
2015-05-20 good 1
2015-05-21 bad 1
2015-05-25 bad 1
2015-05-25 good 1
2015-05-26 bad 6
2015-05-26 good 16
我需要查询以下面的格式返回数据
Date subcategory count
2015-05-20 good 1
2015-05-20 bad 0
2015-05-21 bad 1
2015-05-21 good 0
2015-05-25 bad 1
2015-05-25 good 1
2015-05-26 bad 6
2015-05-26 good 16
如果上面的子类别好或坏的特定日期没有条目,我需要查询返回零。
答案 0 :(得分:1)
您想要所有子类别和日期。因此,首先使用cross join
生成行。然后使用left join
:
select d.dte, r.category_rating, count(f.modified_date)
from (select distinct date(modifed_date) as dte from fms_process_feedback) d cross join
(select distinct category_rating from fms_process_feedback) r left join
fms_process_feedback pf
on date(pf.modified_date) = d.dte and
pf.category_rating = r.category_rating
group by d.dte, r.category_rating;