计算sql / oracle中的通过和失败计数

问题描述 投票:0回答:1

我在oracle中有数据库表,

ID      status  cycle

T051    Passed   s1

T051    Failed   s1

T061    Failed   s1

T061    Failed   s1

T051    Failed   s2

我想要这样的输出

ID   cycle pass   fail

T051   s1   1      0

T061   s1   0      1

T051   s2   0      1

逻辑:->如果通过了相应的id&cycle任何状态,则其通过计数1,如果相应的id&cycle所有状态都失败,则失败计数1

任何人都可以在这里帮助吗?

mysql sql database oracle rdbms
1个回答
0
投票

使用case语句尝试以下操作。

select
    ID,
    cycle,
    sum(case when status = 'Passed' then 1 else 0 end) as pass,
    sum(case when status = 'Failed' then 1 else 0 end) as fail
from yourTable
group by
    ID,
    cycle

0
投票
SELECT Id, Cycle, 
(CASE WHEN STATUS = 'Passed' THEN 1 ELSE 0 END) as Pass,
(CASE WHEN STATUS = 'Failed' THEN 1 ELSE 0 END) as Fail
FROM TABLE_NAME;
© www.soinside.com 2019 - 2024. All rights reserved.