如何解决将两个 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;
count
-------
21
(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
-------
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;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。