如何在多个SELECT结果上执行数学运算?

时间:2011-03-31 18:22:55

标签: sql postgresql

我有一个PlayerTrial的SQL表,可以保存玩家试用。

---PlayerTrials Basic Layout---
int id
int playerid
bool flagA
bool flagB
bool flagC

我想确定玩家用标志B和C设置完成的试验百分比。

要这样做,我知道我必须:

1)选择一名球员的总试验次数

SELECT COUNT( * ) from playertrial WHERE playerid = _

2)选择flagB和flagC为真的总试验

SELECT COUNT( * ) from playertrial WHERE playerid = _ AND flagB = true AND flagC = true

3)将2除以1以确定具有标志B + C set

的试验的百分比
brain explode.

我知道如何对一个和两个进行单独的查询。当然,我可以将它们存放在临时桌子或其他东西中。但是我确信有一种方法可以将它们加入到一个查询中,并且我已经在尝试所有我知道的SQL组合,以便我不知道接下来要尝试什么。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

SELECT BCCount, TotalCount, BCCount/TotalCount as Percentage
    FROM (SELECT SUM(CASE WHEN flagB=true AND flagC=true THEN 1 ELSE 0 END) AS BCCount,
                 COUNT(*) as TotalCount
              FROM playertrial
              WHERE playerid = _) t