2017-09-15 99 views
0

我使用Oracle 11g和我想從我的SQL查詢除以2的結果:如何劃分兩個SELECT COUNT結果?

SELECT ((SELECT COUNT(PK_id) FROM TAB1)/SELECT COUNT(TAB1.PK_id) 
FROM TAB1 
INNER JOIN TAB2 ON TAB2.PK_id = TAB1.FK_id 
FROM TAB2; 

我要來劃分,有2 SQL查詢結果,從COUNT結果。 在第一個查詢中,我計算了我擁有的ID的數量,然後我做了一個內部連接來計算我在TAB1和我的TAB2中擁有的ID ..

Tancks。 亞歷

回答

0

之前第二計數刪除選擇

SELECT ((SELECT COUNT(PK_id) FROM TAB1)/COUNT(TAB1.PK_id)) 
FROM TAB1 
INNER JOIN TAB2 ON TAB2.PK_id = TAB1.FK_id 
FROM TAB2; 
0

,你可以使用單個查詢的詞組是:

SELECT 
    COUNT(DISTINCT t1.PK_id)/COUNT(t1.PK_id) AS cnt_ratio 
FROM TAB1 t1 
INNER JOIN TAB2 t2 
    ON t2.PK_id = t1.FK_id 
0

你試圖計算TAB1的記錄比那有TAB2的外鍵?是否啓用了外鍵?

難道你們就不能只是說:

select count(pk_id)/ count(fk_id) 
-- counting pk_id will get you all records, and counting fk_id will got you records with fk_id not null 
from tab1 

但是,您可能想防止空值和0計數