SQL Group by 空值补0的写法

我有一个月空气质量的数据表,在这个表里我有优、良、轻度污染、重度污染等等等级,我现在向查询这一个月内每一种等级的天数,那我就要用到group by,但是如果这一个月没有某一种等级,我想在返回结果的地方补0,请问要怎么写。求大神。。。。
图片说明
这是我的表结构,我需要查询的是某个月,某个城市id的各种等级的天数。

nvl(天数,0);天数为空,则返回0.

http://blog.csdn.net/jie11447416/article/details/50887888

-- SQL Server
WITH
/* 测试数据
 空气质量表(日期,等级) AS (
    SELECT '01-01','良' UNION ALL
    SELECT '01-02','良' UNION ALL
    SELECT '01-02','轻度污染'
), */
X(等级) AS (
    SELECT '优' UNION ALL
    SELECT '良' UNION ALL
    SELECT '轻度污染' UNION ALL
    SELECT '重度污染'
)
    SELECT x.等级,
           COUNT(t.日期) AS 天数
      FROM x
 LEFT JOIN 空气质量表 t
        ON x.等级 = t.等级
  GROUP BY x.等级
等级            天数
-------- -----------
优                 0
良                 2
轻度污染           1
重度污染           0