此代码出错。我看过类似的类型问题而无法找到答案。
sum(COALESCE(((rpt.report_target_data::json->>'itemQuantity')::int)::int),0) as itemQuantity,
report_target_data 是一个json对象和' itemQuantity'是json的一个元素。有时该字段包含空值。因此,当我尝试获得总和时,它会产生错误,因为如果列具有空值,则postgres无法获得总和。上面的代码有什么问题。有办法绕过那件事吗?即使某些行包含空值,有没有办法计算总和?
以上是上述代码的错误 - >
没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
答案 0 :(得分:-1)
就我而言,这不是 COALESCE 问题,但我最终回答了这个问题。
我注意到我的列值是字符(varchar 类型),所以我所做的是:
select sum(cast(num_suf as int)) as total from results;
以防万一有人再次遇到这个问题:)