2017-09-15 2 views
0

私は、Oracle 11gのを使用して、私は私のSQLクエリからの2の結果を分割したい: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

のようにして、フレーズ、この単一のクエリを使用して2回目のカウント前に

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

を選択することができ取り除く:あなたはそのTAB1のレコードの比率を計算しようとしている

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

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から保護することをお勧めします
関連する問題