mysql - MySQL SUM 带有条件的列 IF
问题描述
我有两列,增益和偏差。我可以使用以下代码得到一个总和和我的计算。
sum(gain) - sum(bia) AS 'TOT YAC',
但我还需要对另一列满足条件(series_end='Touchdown')的 bia 列进行另一次计算。但是我想在不更改下面的原始 SELECT 语句的情况下做到这一点。
SELECT possession_team AS Team, ball_carrier_receiver AS Player,
FROM plays WHERE run_pass='P' AND pass_result <>'S' AND pass_result <>'R'
GROUP BY possession_team, ball_carrier_receiver;
这就是我卡住的地方。从逻辑上讲,它会像下面这样,但我似乎无法在 MySQL 代码中使用任何东西。它不能是“当 else 1 然后 0 结束时的情况”,因为我需要 bia 列的真实总和(值的范围可以从 -5 到 50)。
sum(bia if series_end='Touchdown') AS 'BIA TD',
解决方案
据我了解,您问您需要使用CASE
声明
SELECT possession_team Team, ball_carrier_receiver Player,
SUM(gain) - SUM(bia) 'TOT YAC',
SUM(bia CASE WHEN series_end = 'Touchdown' THEN 1 ELSE 0 END) 'BIA TD',
FROM plays
WHERE run_pass = 'P'
AND pass_result NOT IN ('S', 'R')
GROUP BY possession_team, ball_carrier_receiver;
推荐阅读
- excel - 从工作表中获取数据到单个工作簿
- node.js - 当我确认用户所说的内容时,为什么我的技能会转到我的错误处理程序?
- apache-spark - 使用 PySpark 将嵌套的 JSON 解析为 Spark DataFrame
- angular - rxjs v6 和 rxjs/operators 的错误
- javascript - JS/CSS - 函数 openNav() 在主页上不起作用(仅限)
- pip - 如何强制 pip install 软件包从 setup.py 急切地更新依赖项
- flutter - 用 java 14 扑动医生
- sql - 为什么使用键查找而不是消除查找,因为消除查找更快?
- arrays - 在 C 函数中通过指针传递结构数组以更新指针引用
- react-native - 为什么 redux 商店的对象属性值来自 firestore '9' 而不是 img url?