J'ai deux tables.
FootballPlayers
avec les colonnes Id_footballplayer, Last_Name, Fisrt_Name, Age Transfers
avec les colonnes Id_transfer, Name_club, prix, date, acceptation (oui ou non), code_footballplayerComment écrire une requête SQL pour sélectionner les noms de famille des joueurs et la somme des transferts réussis effectués par eux, dont le nombre dépasse 3 ?
J'ai déjà écrit une requête qui affiche le montant total de tous les transferts réussis pour chaque joueur
SELECT FootballPLayers.Last_Name,
SUM(CASE acceptance WHEN 'yes' THEN price ELSE 0 END) AS amount_price
FROM FootballPlayers
INNER JOIN Transfers ON FootballPlayers.ID_footballplayer = Transfers.code_footballplayer
GROUP BY FootballPlayers.Last_Name;
Mais je ne sais pas comment ajouter une condition si le nombre de transferts réussis est supérieur à 3
Puisqu'il s'agit d'un scénario de groupe, après le, GROUP BY
vous voudrez probablement :
HAVING COUNT(1) > 3
La HAVING
clause fonctionne de manière très similaire à WHERE
, mais est appliquée différemment.
Une alternative serait la sous-requête :
SELECT * FROM
(
SELECT FootballPLayers.Last_Name,
SUM(CASE acceptance WHEN 'yes' THEN price ELSE 0 END) AS amount_price,
COUNT(1) AS [Transfers]
FROM FootballPlayers
INNER JOIN Transfers ON FootballPlayers.ID_footballplayer = Transfers.code_footballplayer
GROUP BY FootballPlayers.Last_Name
) x
WHERE x.Transfers > 3
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots