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

标签 mysql sql

尝试找出如何最好地表达这个问题,但我认为最好通过示例来完成。

我有以下查询输出

league_id   user_id   outcome_id
   5        1         1
   5        1         4
   5        2         1

正如您所看到的,有两种不同的结果值。 存在不止一种 league_id 和 user_id 相同的情况是有效的……例如在上面的示例中 5 和 1。

我想要的是生成摘要数据,如果 league_id 和 user_id 的组合的结果为“4”,那么将输出“FAIL”,并且该 league_id 的所有“1”结果都将被忽略和 user_id 组合。如果不存在“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

关于mysql - 如果满足条件则忽略其他记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22918957/

相关文章:

mysql - SET NAMES 和 SET CHARSET 的区别

sql - SQL建表时如何指定输入格式?

mysql - 如果不存在则插入行而不会出现死锁

mysql - 使用校验和仅下载 MySQL 中已更改的表

使用 GROUP_CONCAT 从多个表派生的 mySQL View

mysql - 将十六进制转换为 int 以进行 MySQL 导入

不同环境下的 PHP session 问题

sql - SAS 直通 SQL - 多个数据库

sql - 每天同步两个大型(超过 8000 万条记录)数据库

mysql - 使用 SQL 从 MySQL 数据库结果集中选择最近的周围行(上方/下方)