我正在研究一个实用的大学问题,但无法弄清楚如何实现我需要的输出。我是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。
使用带有条件聚合的单个查询:
SELECT
COUNT(*) AS "Total Customers",
COUNT(referred) AS "Direct Customers",
COUNT(CASE WHEN referred IS NULL THEN 1 END) AS "Referred Customers"
FROM CUSTOMERS;