Поскольку MySQL обрабатывает логические значения как 1 или 0 в контексте numeri c, вы можете просто SUM
результат сравнения actual
и result
, чтобы получить требуемые столбцы:
SELECT MONTHNAME(ts) as mnth,
SUM(actual = result) AS correct_predictions,
SUM(actual != result) AS incorrect_predictions
FROM prediction
GROUP BY mnth;
Обратите внимание, что использование MONTHNAME
приведет к сгруппированию значений каждого года (например, май 2019 г. - май 2020 г.). Это может быть то, что вы хотите (или, возможно, вы ограничиваете диапазон запроса с помощью предложения WHERE
), но если нет, вы должны использовать что-то вроде
EXTRACT(YEAR_MONTH FROM ts) AS mnth
, чтобы включить год в значение, которое вы группируются по.