Как выполнить математику с несколькими результатами SELECT? - PullRequest
1 голос
/ 31 марта 2011

У меня есть таблица sql PlayerTrial, которая содержит, ну, в общем, испытания игрока.

---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 true

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

3) разделить 2 на 1, чтобы определить% испытаний с установленными флагами B + C

brain explode.

Я знаю, как выполнять отдельные запросы как для одного, так и для двух.И, конечно, я мог хранить их во временной таблице или что-то в этом роде.Но я уверен, что есть способ объединить их в один запрос, и я старался изо всех сил пробовать все известные мне SQL-комбинации так, что не представляю, что делать дальше.Есть идеи?

1 Ответ

3 голосов
/ 31 марта 2011
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...