当前位置:  开发笔记 > 后端 > 正文

如何使用SUM而不是UNION

如何解决《如何使用SUM而不是UNION》经验,为你挑选了1个好方法。

我有以下查询来获得两个不同的计数:

  select count(*)  
  from title_title where tv_show_id is null
union
  select count(distinct tv_show_id) 
  from title_title where tv_show_id is not null

有没有一种简单的方法可以在SQL中添加两者而不是在它之外添加?



1> Mureinik..:

由于两个查询都使用相同的表,因此可以将where子句转换case为聚合函数中的表达式,然后添加结果.请注意count,像大多数聚合函数一样忽略nulls,所以这可以相对整齐地完成:

SELECT COUNT(CASE WHEN tv_show_id IS NULL THEN 1 END) +
       COUNT(DISTINCT tv_show_id) -- nulls are ignored anyway
FROM   title_title

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有