[英]mysql - ignore other records if a condition is met
试着弄清楚如何最好地表达这个问题,但我认为最好的例子。
我从查询中得到以下输出
league_id user_id outcome_id
5 1 1
5 1 4
5 2 1
如您所见,有两种不同的结果值。 有效的是,不止一个的情况是league_id和user_id是相同的......例如在上面的例子5和1中。
我想要的是生成摘要数据,如果union_id和user_id的组合结果为'4',那么将输出'FAIL',并且对于该league_id和user_id组合,将忽略'1'的所有结果。 如果不存在'4',则摘要将输出通过。
这将产生如下的东西......
league_id user_id outcome_id
5 1 FAIL
5 2 PASS
对不起,我说我很难实现这个目标! 有人可以帮忙吗?
谢谢。
DS
SELECT league_id,user_id,
CASE WHEN outcome=0 THEN 'PASS' ELSE 'FAIL' END as outcome_id
FROM
(
SELECT league_id,user_id,SUM(CASE WHEN outcome_id=4 THEN 1 ELSE 0 END) as outcome
FROM tableName
GROUP BY league_id,user_id
) As Z
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.