将两个SQL查询合并到一个SQL查询语句中
我使用此查询获取出生日期在给定日期范围内的用户数将两个SQL查询合并到一个SQL查询语句中,sql,Sql,我使用此查询获取出生日期在给定日期范围内的用户数 select count(distinct first_name) from quser q inner join other_details o on o.country = q.country_of_birth where date_of_birth between '2020-02-01' and '2020-03-01' and email is not null; 输出 co
select
count(distinct first_name)
from
quser q
inner join
other_details o on o.country = q.country_of_birth
where
date_of_birth between '2020-02-01' and '2020-03-01'
and email is not null;
输出
count
-------
21
(1 row)
count
-------
498
(1 row)
使用相同的查询,但这一次,用户不属于之前添加的给定范围
select
count(distinct first_name)
from
quser q
inner join
other_details o on o.country = q.country_of_birth
where
date_of_birth not between '2020-02-01' and '2020-03-01'
and email is not null;
输出
count
-------
21
(1 row)
count
-------
498
(1 row)
是否有任何方法可以组合查询并生成单个输出,如
count no count yes
--------- -------
498 21
(1 row)
使用条件聚合:
select count(distinct case when date_of_birth between '2020-02-01' and '2020-03-01' then first_name end) count_yes,
count(distinct case when date_of_birth not between '2020-02-01' and '2020-03-01' then first_name end) count_no
from quser q inner join other_details o
on o.country = q.country_of_birth
where email is not null;
使用条件聚合:
select count(distinct case when date_of_birth between '2020-02-01' and '2020-03-01' then first_name end) count_yes,
count(distinct case when date_of_birth not between '2020-02-01' and '2020-03-01' then first_name end) count_no
from quser q inner join other_details o
on o.country = q.country_of_birth
where email is not null;
我删除了冲突的DBMS标记。请仅为您实际使用的数据库产品添加标记。我删除了冲突的DBMS标记。请仅为实际使用的数据库产品添加标签。