【问题标题】:JOIN multiple queries from same table into one result将同一表中的多个查询加入一个结果
【发布时间】:2019-04-07 16:40:25
【问题描述】:

我正在研究大学实践中的一个问题,但不知道如何实现我需要的输出。我对 SQL 比较陌生,并且正在使用 Oracle 11g。

我有一个名为 CUSTOMERS 的表,我想对其运行三个查询以获取每个表的总数

CUSTOMERS (customer#, lastname, firstname, address, city, state, zip, referred, region)

三个查询各自执行良好并产生所需的结果,但我需要找到一种方法将它们组合起来以产生具有三列的单个结果以及每列中每个查询的结果。

SELECT COUNT(*) AS "Total Customers" 
FROM CUSTOMERS;
SELECT COUNT(*) AS "Direct Customers" 
FROM CUSTOMERS
WHERE referred IS NOT NULL;
SELECT COUNT(*) AS "Referred Customers" 
FROM CUSTOMERS
WHERE referred IS NULL;

在过去的几个小时里,我一直在阅读这里和其他网站,但就是无法理解。我怀疑可能需要 JOIN 或 UNION。

【问题讨论】:

  • 这里不需要加入或联合;只需使用条件聚合。

标签: sql oracle


【解决方案1】:

使用带有条件聚合的单个查询:

SELECT
    COUNT(*) AS "Total Customers",
    COUNT(referred) AS "Direct Customers",
    COUNT(CASE WHEN referred IS NULL THEN 1 END) AS "Referred Customers"
FROM CUSTOMERS;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-07
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多