我有一个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组合,以便我不知道接下来要尝试什么。有什么想法吗?
答案 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