我有以下查询来获得两个不同的计数:
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中添加两者而不是在它之外添加?
由于两个查询都使用相同的表,因此可以将where
子句转换case
为聚合函数中的表达式,然后添加结果.请注意count
,像大多数聚合函数一样忽略null
s,所以这可以相对整齐地完成:
SELECT COUNT(CASE WHEN tv_show_id IS NULL THEN 1 END) + COUNT(DISTINCT tv_show_id) -- nulls are ignored anyway FROM title_title