Как добавить указанное c условие внутри COUNT () в sql при выполнении группирования по? - PullRequest
0 голосов
/ 25 марта 2020

Допустим, у меня есть таблица mysql, которая содержит информацию о различных задачах. Таблица выглядит следующим образом:

TASK_ID | TASK_INFO

task_1  | succeded
task_1  | failed
task_1  | failed
task_2  | succeded
task_2  | succeded
task_2  | failed

Я хочу рассчитать для каждой задачи процент времени выполнения задачи. например, результат для приведенной выше таблицы:

task1 | 33.3
task2 | 66.6

Я думал о том, чтобы сделать это за 2 шага, сначала вычислите промежуточную таблицу, в которой есть информация о количестве прогонов для каждой задачи, и другую таблицу для количества успехов. для каждой задачи.

Теперь очень просто вычислить промежуточную таблицу с общим количеством выполнений для каждой задачи, но я не могу создать таблицу, в которой будет указано количество успехов для каждой задачи.

Как мне это сделать?

1 Ответ

1 голос
/ 25 марта 2020

Вы можете использовать avg():

select task_id, avg( task_info = 'succeeded' ) as success_rate
from t
group by task_id;

Если вы предпочитаете число от 0 до 100 вместо от 0 до 1, умножьте значение на 100.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...