У меня есть такая таблица attempts
с сотнями или записями. Он записывает некоторые транзакции. Имя транзакции важно, и ошибка говорит о том, что транзакция не была успешной.
| id | name |error| data |
|----|-------|-----|------|
| 1| sara | 0 | bla |
| 2| sara | 1 | bla |
| 3| sara | 0 | bla |
| 4| john | 1 | bla |
| 5| paul | 0 | bla |
| 6| paul | 0 | bla |
| 7| john | 0 | bla |
Что я хочу сделать, чтобы получить ошибку и процент успеха, сгруппировав их по «имени». Так, например, для имени «Сара» у меня есть три транзакции: две успешные (потому что ошибка равна 0 (ложь)) и 1 не удалась (потому что ошибка равна 1 (истина)). Я хочу получить процент успеха или ошибки.
- Вероятность успеха - 2 из 3
- Частота ошибок - 1 из 3
Я немного запутался, потому что не знаю как именно это сделать:
SELECT COUNT(id) AS 'count', name, error
FROM attempts
GROUP BY name, error
ORDER BY name
Запрос возвращает набор результатов, подобный этому:
|count| name |error|
|----|-------|-----|
| 2| sara | 0 |
| 1| sara | 1 |
| 1| john | 1 |
| 1| john | 0 |
| 2| paul | 0 |
, но я не знаю, как я могу рассчитать скорость, я хочу, чтобы примерно так
|count| name |error|success|
|----|-------|-----|-------|
| 3| sara | 1 | 2 |
| 2| john | 1 | 1 |
| 1| paul | 0 | 1 |
Кто-нибудь может мне помочь?