如何(在C1,C2,C3值),如果一个或多个字段为空加三个值?我想它添加空值为零,并把总在一个新的领域四强。现在我的查询只返回null如果值中的至少一个为空。
例如,这是发生了什么(二排,字段four出现空场,因为二是空)
1 | 3 | 5 | 9
2 | NULL | 3 | NULL
8 | 1 | 1 | 10
例如,这就是我想在我的回归集发生
1 | 3 | 5 | 9
2 | NULL | 3 | 5
8 | 1 | 1 | 10
理想情况下,我想也然后第五列这些值添加到组成的说“1-3”,“4-6”桶,“7-10”的基础上在字段4的值。诚然,我不知道如何做到这一点的一部分 - 任何帮助或建议将是有益的。
1 | 3 | 5 | 9 | 7-10
2 | NULL | 3 | 5 | 4-6
8 | 1 | 1 | 10 | 7-10
因为我在PostgreSQL的工作,所以我猜我只是拧起来的东西简单,它一直是几年。我查询的任何帮助下将是非常赞赏。
SELECT "FIELD ONE", "FIELD TWO", "FIELD THREE", "FIELD ONE + FIELD TWO + FIELD THREE" AS "TOTAL FIELD" FROM "Table1";
一种方法是使用coalesce()
:
select t.*,
(coalesce(field1, 0) + coalesce(field2, 0) + coalesce(field3, 0)
) as total
from t;
然后你可以使用一个case
表达。但是,我喜欢使用横向连接,以及:
select t.*,
(case when total <= 3 then '1-3'
when total <= 6 then '4-6'
else '7-10'
end) as range
from t left join lateral
(select sum(field) as total
from (values (field1), (field2), (field3)) v(field)
) s