mysql - 如果满足条件,则忽略其他记录

时间:2014-04-07 17:17:52

标签: mysql sql

试着弄清楚如何最好地表达这些问题,但我认为最好通过实例来完成。

我从查询中得到以下输出

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'并且所有结果'1'将被忽略为该league_id和user_id组合。如果没有'4',则摘要将输出传递。

这会产生类似下面的内容......

league_id   user_id   outcome_id
   5        1         FAIL
   5        2         PASS

很抱歉说我很难实现这一目标!有人可以帮忙吗?

感谢。

DS

1 个答案:

答案 0 :(得分:2)

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