Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将两个SQL查询合并到一个SQL查询语句中_Sql - Fatal编程技术网

将两个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标记。请仅为实际使用的数据库产品添加标签。