带聚合函数的COALESCE和NULLIF

时间:2017-07-21 13:26:48

标签: postgresql coalesce

在关注了我可以找到的每个线程并且没有让它工作之后,我希望得到一些关于我可能做错的信息。我使用Coalesce聚合了许多int2字段。我只得到每个字段都有值的值;如果任何地方都存在空值(并且这是常见的),则整个聚合的结果为空。我知道nullif()函数可以用0之类的可用值替换空值,但无论我做什么,我都会得到一个错误,或者整个聚合的结果为0。任何帮助赞赏!

以下是代码:

SELECT
"public".jam_fodder_productivity.cows,
"public".jam_fodder_productivity.sheep,
"public".jam_fodder_productivity.lamb,
"public".jam_fodder_productivity.horse,
"public".jam_fodder_productivity.ungneyti,
COALESCE(jam_fodder_productivity.cows + (jam_fodder_productivity.ungneyti / 2::double precision) + (jam_fodder_productivity.horse / 2::double precision) + (jam_fodder_productivity.sheep / 6::double precision) + (jam_fodder_productivity.lamb / 12::double precision)) AS total_productivity
FROM
"public".jam_fodder_productivity 

查询结果如下:

coalesce result

1 个答案:

答案 0 :(得分:0)

你必须申请

# You must configure testlogstash using the GUI NSSM provides
$logstashFilepath = "C:\Users\emckenzie\Downloads\nssm-2.24\nssm-
2.24\win64\nssm.exe"
$start = "start testlogstash"
$stop = "stop testlogstash"

$logstashprocess = Start-Process -FilePath $logstashFilepath -ArgumentList 
$start -PassThru

Start-Sleep -s 60

Start-Process -FilePath $logstashFilepath -ArgumentList $stop

到构成总和的每个表达式。

否则,如果任何表达式为NULL,则整数总和为NULL。

因此该条目将计算为

COALESCE(<expression>, 0)