代码之家  ›  专栏  ›  技术社区  ›  stemie

Mysql计数记录符合条件,选择了多个字段

  •  0
  • stemie  · 技术社区  · 13 年前

    如果某一列(runs.Finish)中的记录等于1,我将尝试使用count case对其进行计数。

    当我像下面第三行那样添加计数用例时,我似乎无法使其工作。

    SELECT
      `jockeys`.`JockeyInitials`,
      `jockeys`.`JockeySurName` ,
      COUNT(  `runs`.`JockeysID` ), 
      COUNT( CASE WHEN `runs`.`Finish`=1 THEN 1 ELSE NULL END ) AS `runs`.`Finish` , 
      SUM(  `runs`.`StakeWon` ) 
    FROM runs, jockeys
    WHERE  `runs`.`JockeysID` =  `jockeys`.`JockeysID` 
      AND  `runs`.`JockeysID` >=1
      AND  `runs`.`JockeysID` <=100
    GROUP BY  `runs`.`JockeysID`
    
    1 回复  |  直到 13 年前
        1
  •  0
  •   rs.    13 年前

    您的查询应该是(按列和案例语句列的别名检查组)

    SELECT
      `jockeys`.`JockeyInitials`,
      `jockeys`.`JockeySurName` ,
      COUNT(  `runs`.`JockeysID` ), 
      COUNT( CASE WHEN `runs`.`Finish`=1 THEN 1 ELSE NULL END ) AS `Finish` , 
      SUM(  `runs`.`StakeWon` ) 
    FROM runs, jockeys
    WHERE  `runs`.`JockeysID` =  `jockeys`.`JockeysID` 
      AND  `runs`.`JockeysID` >=1
      AND  `runs`.`JockeysID` <=100
    GROUP BY  `jockeys`.`JockeyInitials`,
      `jockeys`.`JockeySurName`