SQL QUERY REQUIRED需要处理NULL和NOT NULL值的特定格式的计数

时间:2013-06-29 20:08:54

标签: sql

ROLE_CAT    SYN_CODE        
ab          2
aaa         4
bcd
aaav
abvx        3

此处是包含两个字段ROLE_CAT和SYN_CODE的表格 1.我想要一个SQL查询,它给我结果

ROLE_CAT    COUNT(*)
ab          1
aaa         1
bcd         0
aaav        0
abvx        1

这是在SYN_CODE IS NOT NULL

的情况下
ROLE_CAT    COUNT(*)
ab          0
aaa         0
bcd         1
aaav        1
abvx        0

这是在SYN_CODE IS NULL的情况下

两个案例都应该是单一查询。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

你在找这个吗?

SELECT role_cat,
       COUNT(syn_code) count1,
       COUNT(*) - COUNT(syn_code) count2
  FROM table1
 GROUP BY role_cat

输出:

| ROLE_CAT | COUNT1 | COUNT2 |
------------------------------
|      aaa |      1 |      0 |
|     aaav |      0 |      1 |
|       ab |      1 |      0 |
|     abvx |      1 |      0 |
|      bcd |      0 |      1 |

这是 SQLFiddle 演示