我有两个产生数字的查询结果。我想知道如何将两个查询合并为一个除法运算。
我的查询为
SELECT COUNT(*) FROM Games WHERE Title = "Zelda" - This gets me my numerator
SELECT COUNT(*) FROM Games - This is my denominator.
我想写一个查询,该查询是分子/分母的结果集。这可能吗?
答案 0 :(得分:0)
有条件的sum
:
select sum(case when Title = 'Zelda' then 1 else 0) / count(*) as result from Games
上面的代码将进行整数除法。
如果您需要更高的精度:
select 1.0 * sum(case when Title = 'Zelda' then 1 else 0) / count(*) as result from Games
此外如果您的RDBMS允许它你可以这样做:
SELECT (SELECT COUNT(*) FROM Games WHERE Title = "Zelda") /(SELECT COUNT(*) FROM Games)
答案 1 :(得分:0)
您可以在SELECT
内使用FORM
:
SELECT CAST(T1.N AS float)/T2.D FROM
(SELECT COUNT(*) AS N FROM Games WHERE Title = "Zelda") T1,
(SELECT COUNT(*) AS D FROM Games) T2
您的每个查询都可以视为一个表(具有一个结果变量),只需使用AS
为它们命名,然后创建外部查询以选择所需的算术运算即可。 (将结果强制浮动以获取比率)。
答案 2 :(得分:0)
我会简单地做:
input
我认为这是满足您要求的最简单查询(假设SELECT AVG( (Title = 'Zelda)::int)
FROM Games;
永远不会Title
。