J'interroge une table appelée Events
pour les joueurs avec le plus de réservations de cartes jaunes et rouges (c'est une application de football). Un jaune vaut 1 point et un rouge vaut 3.Ajouter deux références ensemble dans une requête avec plusieurs comptes
J'ai cette requête:
SELECT player_id, first_name, last_name, slug,
SUM(CASE WHEN event_type.name = 'Yellow Card' THEN 1 ELSE 0 END) AS yellowAmount,
SUM(CASE WHEN event_type.name = 'Red Card' THEN 3 ELSE 0 END) AS redAmount
FROM event
INNER JOIN matches ON event.match_id = matches.id
INNER JOIN player ON event.player_id = player.id
INNER JOIN event_type ON event.event_type_id = event_type.id
WHERE matches.league_id = 94
AND (event_type.name = "Yellow Card" OR event_type.name = "Red Card")
GROUP BY player_id;
Comment ajouter yellowAmount
et redAmount
ensemble et l'utiliser pour commander le résultat?
J'ai essayé cela, mais je reçois une erreur de colonne inconnue:
SELECT player_id, first_name, last_name, slug,
SUM(CASE WHEN event_type.name = 'Yellow Card' THEN 1 ELSE 0 END) AS yellowAmount,
SUM(CASE WHEN event_type.name = 'Red Card' THEN 3 ELSE 0 END) AS redAmount,
SUM(yellowAmount + redAmount) AS total
FROM event
INNER JOIN matches ON event.match_id = matches.id
INNER join player ON event.player_id = player.id
INNER JOIN event_type ON event.event_type_id = event_type.id
WHERE matches.league_id = 94
AND (event_type.name = "Yellow Card" OR event_type.name = "Red Card")
GROUP BY player_id
ORDER BY total DESC;
sum (cas où type_événement.name = 'Carte Jaune' puis 1 sinon 0 fin) + somme (cas où type_événement.nom = 'Carte Rouge' puis 3 sinon 0 fin) – Strawberry