繁体   English   中英

选择条件为真且计数> 3的总和

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM