Sql 如何划分嵌套查询的两个结果
如何划分嵌套查询的两个结果??我的意思是:我有一个存储过程Sql 如何划分嵌套查询的两个结果,sql,Sql,如何划分嵌套查询的两个结果??我的意思是:我有一个存储过程 SELECT s.sheep_id, ( s.sheepThatHadBirth / ( s.sheepThatHadBirth + s1.sheepThatNotHadBirth ) ) * 100 FROM (SELECT sheep_id, Count(*) AS sheepThatHadBirth FROM FemaleSheep_Has_Wave
SELECT s.sheep_id,
( s.sheepThatHadBirth / ( s.sheepThatHadBirth + s1.sheepThatNotHadBirth ) ) * 100
FROM (SELECT sheep_id,
Count(*) AS sheepThatHadBirth
FROM FemaleSheep_Has_Wave
WHERE pregnencies_succeded = 1
GROUP BY sheep_id)AS s
CROSS JOIN (SELECT sheep_id,
Count(*) AS sheepThatNotHadBirth
FROM FemaleSheep_Has_Wave
WHERE pregnencies_succeded = 0
GROUP BY sheep_id)AS s1
结果是不正确的,因为我认为交叉连接
请帮忙谢谢您根本不需要加入
SELECT sheep_id,
100.0 * Sum(CASE
WHEN pregnencies_succeded = 1 THEN 1
ELSE 0
END) / Count(*) AS pregnencies_succeded_pct
FROM FemaleSheep_Has_Wave
GROUP BY sheep_id
或者只是
Sum(CAST(怀孕成功为INT))/Count(*)
可能。或者甚至只是。avg(1.0*怀孕成功)。您使用的RDBMS是什么?成功怀孕的数据类型是什么?