SQL查询以获取在特定条件下具有其他列的重复列值

用户196415

假设我们有以下架构的下表。

create table result
(
    id          int,
    task_id     int,
    test_name   string,
    test_result string
);

填充在该表上的数据集如下所示。

insert into result
values (1, 1, 'test_a', 'pass'),
       (2, 1, 'test_b', 'fail'),
       (3, 1, 'test_c', 'pass'),
       (4, 1, 'test_d', 'pass'),
       (5, 2, 'test_a', 'pass'),
       (6, 2, 'test_b', 'pass'),
       (7, 2, 'test_c', 'pass'),
       (8, 2, 'test_d', 'pass');

基本上,单个任务具有多个测试结果条目。我想检索具有test_b失败但所有其他测试通过的task_id。因此在此示例中,它应仅返回task_id:1。

我已经尝试过EXISTS和HAVING,但在这种情况下似乎不起作用。我是SQL的新手。如何实施?

戈登·利诺夫

我将只使用带有having子句的聚合

select task_id
from result
group by task_id
having sum(case when test_name = 'test_b' and test_result = 'fail' then 1 else 0 end) = 1 and
       sum(case when test_result = 'pass' then 1 else 0 end) = count(*) - 1;

第一个条件验证test_b失败。第二个计数通过次数,它应该比任务的行数少一。

如果您的数据库支持except(或minus),则可以使用基于集合的操作:

select task_id
from result
where test_name = 'test_b' and test_result = 'fail'
except
select task_id
from result
where test_name <> 'test_b' and test_result = 'fail'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

sql在特定条件下具有空值的累积总和

来自分类Dev

在特定条件下获取数据集的特定值

来自分类常见问题

获取特定条件下的数据透视值

来自分类Dev

获取特定条件下的数据透视值

来自分类Dev

使用两个表时,SQL在特定条件下获取最大值

来自分类Dev

在特定条件下选择列

来自分类Dev

SQL-根据其他列中的特定条件查询SUM

来自分类Dev

合并或映射具有唯一列名或在特定条件下的DataFrame

来自分类Dev

SQL从具有特定条件的重复项中查找单个值

来自分类Dev

如何在ORACLE中累积特定列并在特定条件下释放值

来自分类Dev

JSON:使用C#在特定条件下获取列表中的属性值

来自分类Dev

linq在特定条件下获得多个值

来自分类Dev

在特定条件下计算数组中的值

来自分类Dev

在特定条件下查找ArrayList中的值

来自分类Dev

SQL:在特定条件下的不同记录

来自分类Dev

对于数组中的特定条件,获取至少具有两个值的文档,在MongoDB中查询

来自分类Dev

在特定条件下播放winsound

来自分类Dev

在特定条件下创建组

来自分类Dev

SQL中连续重复列数据的其他列值的总和

来自分类Dev

SQL查询计算其他条件下的出现总数-SQL Server 2008

来自分类Dev

mysql 中的记录具有重复的 id(在条件下)?任何查询

来自分类Dev

仅在BigQuery中其他列具有特定值的情况下才选择值

来自分类Dev

SQL在条件或其他条件下左联接

来自分类Dev

SQL在条件或其他条件下左联接

来自分类Dev

如何在sql中的where条件下从具有UTC格式的日期和时间的列中获取记录?

来自分类Dev

在特定条件下使用lodash添加和合并对象数组中的重复项

来自分类Dev

用其他重复列更新列

来自分类Dev

熊猫-在特定条件下特定组的值变为负值

来自分类Dev

如何在特定条件下查找R中的特定行或列

Related 相关文章

  1. 1

    sql在特定条件下具有空值的累积总和

  2. 2

    在特定条件下获取数据集的特定值

  3. 3

    获取特定条件下的数据透视值

  4. 4

    获取特定条件下的数据透视值

  5. 5

    使用两个表时,SQL在特定条件下获取最大值

  6. 6

    在特定条件下选择列

  7. 7

    SQL-根据其他列中的特定条件查询SUM

  8. 8

    合并或映射具有唯一列名或在特定条件下的DataFrame

  9. 9

    SQL从具有特定条件的重复项中查找单个值

  10. 10

    如何在ORACLE中累积特定列并在特定条件下释放值

  11. 11

    JSON:使用C#在特定条件下获取列表中的属性值

  12. 12

    linq在特定条件下获得多个值

  13. 13

    在特定条件下计算数组中的值

  14. 14

    在特定条件下查找ArrayList中的值

  15. 15

    SQL:在特定条件下的不同记录

  16. 16

    对于数组中的特定条件,获取至少具有两个值的文档,在MongoDB中查询

  17. 17

    在特定条件下播放winsound

  18. 18

    在特定条件下创建组

  19. 19

    SQL中连续重复列数据的其他列值的总和

  20. 20

    SQL查询计算其他条件下的出现总数-SQL Server 2008

  21. 21

    mysql 中的记录具有重复的 id(在条件下)?任何查询

  22. 22

    仅在BigQuery中其他列具有特定值的情况下才选择值

  23. 23

    SQL在条件或其他条件下左联接

  24. 24

    SQL在条件或其他条件下左联接

  25. 25

    如何在sql中的where条件下从具有UTC格式的日期和时间的列中获取记录?

  26. 26

    在特定条件下使用lodash添加和合并对象数组中的重复项

  27. 27

    用其他重复列更新列

  28. 28

    熊猫-在特定条件下特定组的值变为负值

  29. 29

    如何在特定条件下查找R中的特定行或列

热门标签

归档