【问题标题】:Combine two SELECT statements to create output in ORACLE SQL DEVELOPER组合两个 SELECT 语句以在 ORACLE SQL DEVELOPER 中创建输出
【发布时间】:2022-11-30 05:03:29
【问题描述】:

所以我试图结合这两个语句的输出:

SELECT COUNT (CUSTOMER_ID) FROM CUSTOMER WHERE MILES BETWEEN 3 AND 5;

这个总数给了我 8

SELECT COUNT (CUSTOMER_ID) FROM CUSTOMER;

*这个总数给我 20(我的数据库中的总行数)

这让我知道我的数据库中谁住在 3 英里和 5 英里以内,英里是它自己的列。

我想将答案输出到我的总数据库的百分比,例如。 8/20 * 100 * = 40%

SELECT
  (SELECT COUNT (CUSTOMER_ID) FROM CUSTOMER WHERE MILES BETWEEN 3 AND 5) / 
  (SELECT COUNT (CUSTOMER_ID) FROM CUSTOMER) * 100 FROM CUSTOMER ;

但这给了我 20 行“40”,这是正确答案,我只是不想要它的 20 行。

【问题讨论】:

  • Littlefoot 在他们的回答中解释了你的错误。这是一个带有条件聚合的查询,它做同样的事情:SELECT COUNT(CASE WHEN miles BETWEEN 3 AND 5 THEN 1 END) * 100 / COUNT(*) FROM customer;

标签: sql oracle oracle11g


【解决方案1】:

最后的 FROM 应该来自 DUAL(它只包含 1 行),而不是 CUSTOMER(显然,它包含 20 行)。

SELECT (SELECT COUNT (CUSTOMER_ID) FROM CUSTOMER WHERE MILES BETWEEN 3 AND 5) /
       (SELECT COUNT (CUSTOMER_ID) FROM CUSTOMER) * 100 as result
FROM DUAL;         --> here

【讨论】:

    猜你喜欢
    • 2014-03-27
    • 2013-05-31
    • 2018-07-09
    • 2013-08-14
    • 2017-07-14
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多