Dav*_*542 2 mysql sql union select
我有以下查询来获得两个不同的计数:
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
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以在SQL中添加两者而不是在它之外添加?
由于两个查询都使用相同的表,因此可以将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
Run Code Online (Sandbox Code Playgroud)