簡體   English   中英

結合兩個 SELECT 語句在 ORACLE SQL DEVELOPER 中創建 output

[英]Combine two SELECT statements to create output in ORACLE SQL DEVELOPER

所以我試圖將這兩個語句的 output 結合起來:

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

這個總數給了我 8

SELECT COUNT (CUSTOMER_ID) FROM CUSTOMER;

*這個總數給我 20(我的數據庫中的總行數)

這讓我知道我的數據庫中誰住在 3 英里和 5 英里以內,英里是它自己的列。

我想 output 回答我的總數據庫的百分比,例如。 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 行。

最后的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

使用條件聚合在單個查詢中完成所有操作:

SELECT COUNT(CASE WHEN miles BETWEEN 3 AND 5 THEN customer_id END)
       / COUNT(customer_id) * 100 AS percentage
FROM   customer;

如果您使用子查詢,那么您將訪問該表兩次並且效率會降低。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM