У меня есть таблица с именем fixtures
(я упростил для этого примера), и я хотел бы заполнить последние два столбца (* _plus_mc_per) процентом случаев, произошедших для каждого числа при выполнении запроса к mc_*
колонны.Это выглядело бы как пример
#mc = Match Corner # mc_per = Match Corner Percentage
| mc_0 | mc_1 | mc_3 | mc_4 | match_count | one_plus_mc_per | two_plus_mc_per |
| 1 | 4 | 3 | null | 3 | 100 | 66 |
В момент, когда я выполняю свой запрос, это выглядит как
#mc = Match Corner # mc_per = Match Corner Percentage
| mc_0 | mc_1 | mc_3 | mc_4 | match_count | one_plus_mc_per | two_plus_mc_per |
| 1 | 4 | 3 | null | 3 | null | null |
Так что, начиная с запроса для one_plus_mc_per
, я могу сделать это
SELECT COUNT(*) FROM fixtures WHERE coalesce(mc_0,0) >= 1 AND id = 182;
# Using coalesce for dealing with null, will return a 0 if value null
Это возвращает
| count |
| 1 |
Если я выполню этот запрос для каждого столбца в отдельности, возвращаемые результаты будут
| count | count | count | count |
| 1 | 1 | 1 | 0 |
Таким образом, я смогу добавить всезначения столбца вверх и разделить на мой счетчик совпадений.Это имеет смысл (и я благодарю dmfay за то, что он подумал о его предложении в предыдущем вопросе)
Моя проблема в том, что я не могу, например, выполнить этот запрос 4 раза, поскольку он очень неэффективен.Мой SQL-фу не силен и искал способ сделать это за один вызов базы данных, что позволило бы мне тогда взять это процентное значение и обновить столбец процентного отношения
Спасибо