将条件总和显示为一行

时间:2017-12-13 12:25:04

标签: sql oracle pivot

嗨,我有一张这样的桌子

select id, value, condition from mytable

结果

enter image description here

我需要一个查询来实现这个

enter image description here

有可能吗?

2 个答案:

答案 0 :(得分:1)

只需使用条件聚合:

select id,
       sum(case when condition = 'true' then value else 0 end) as num_true,
       sum(case when condition = 'false' then value else 0 end) as num_false
from t
group by id;

您已使用Oracle和SQL Server标记了该问题。它们都不直接在SQL中支持布尔类型,所以我猜这个条件是一个字符串。

答案 1 :(得分:1)

是的可能

select id "id", sum(decode(condition,'TRUE',value,0))  "sum_of_condition_true", 
                sum(decode(condition,'FALSE',value,0)) "sum_of_condition_false"
  from mytable
 group by id
 order by id;