查询计算包括NULL的值的平均值
Posted
技术标签:
【中文标题】查询计算包括NULL的值的平均值【英文标题】:Query calculating average of values including NULL 【发布时间】:2020-09-01 21:31:26 【问题描述】:我有一个查询如下:
UPDATE table SET result = ROUND((col1 + col2)/2, 2);
如果 col1 和 col2 中都有值,这很好,但如果其中一个为 null,则返回 null。我该如何解决这个问题?
【问题讨论】:
【参考方案1】:你可以这样做:
UPDATE table
SET result = ROUND(
(coalesce(col1, 0) + coalesce(col2, 0)
/ nullif( (col1 is not null) + (col2 is not null), 0),
2);
分子将两列相加,同时将null
值转换为0
。分母计算有多少值不是null
。换句话说,如果有两个非null
值,你会得到它们的平均值,而如果只有一个,你会得到值本身。
如果两个值都是null
,则result
仍然是null
(这似乎是相关的事情)。
【讨论】:
谢谢 - coalesce(colx, 0) 成功了。非常感谢。以上是关于查询计算包括NULL的值的平均值的主要内容,如果未能解决你的问题,请参考以下文章