我使用的是Oracle 11g,我想从我的SQL查询中划分2个结果:
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 :(得分: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;
答案 1 :(得分: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
答案 2 :(得分: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计数