[英]select sum where condition is true and count > 3
我有两张桌子。
FootballPlayers
的列Id_footballplayer,姓氏,Fisrt_Name,年龄Transfers
的列Id_transfer,Name_club,价格,日期,验收(是或否),code_footballplayer如何编写 SQL 查询来选择玩家的姓氏以及他们进行的成功转会总数超过 3 的总和?
我已经写了一个查询,显示每个玩家所有成功转移的总金额
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;
但是我不知道如果成功转移的次数超过3,如何添加条件
由于这是一个组场景,在GROUP BY
你可能想要:
HAVING COUNT(1) > 3
HAVING
子句的工作方式与WHERE
非常相似,但应用方式不同。
另一种方法是子查询:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.