Я пытаюсь собрать количество разных столбцов для игроков (вам не нужно знать входы и выходы всех столбцов). У нас есть столбцы player_1 и player_2, поэтому я выделил их, чтобы получить общее количество, как вы можете видеть ниже:
SELECT player,
COUNT(*) AS since_start_matches,
COUNT(CASE WHEN ht_total_goals=0 THEN 1 END) AS since_start_ht_0,
COUNT(CASE WHEN la_date BETWEEN CURDATE() - INTERVAL 13 DAY AND CURDATE() THEN 1 END) AS last_14_d_matches,
COUNT(CASE WHEN ht_total_goals=0 AND la_date BETWEEN CURDATE() - INTERVAL 13 DAY AND CURDATE() THEN 1 END) AS last_14d_ht_0,
FROM ((SELECT player_1 as player, la_date, ht_total_goals
FROM results ORDER BY la_date DESC, session_start DESC
) UNION ALL
(SELECT player_2 as player, la_date, ht_total_goals
FROM results ORDER BY la_date DESC, session_start DESC
)
) p
GROUP BY player
Я также хочу получить частоту голов в последних 32 играх для этих игроков как ну .. Нет способа добавить предложение LIMIT в CASE WHEN, когда я предполагаю?
Например, я хочу добавить столбец:
COUNT(CASE WHEN ht_total_goals=0 THEN 1 END LIMIT 32 ) AS last_32_games_ht_0
Это выиграло ' t работает, я предполагаю, потому что таблица, из которой мы выбираем, содержит все строки, а оператор CASE WHEN не позволяет применять ограничения?
Я мог бы сделать это в отдельном запросе, но в идеале я хочу все в одном.
Помощь приветствуется.