You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中带FILTER的SUM查询返回null如何替换为0

解决方案

错误原因

FILTER 子句仅支持附加在聚合函数后使用,你之前的写法将非聚合函数 COALESCE 放在 FILTER 前修饰,不符合语法规则,因此触发报错。

修正后写法

将完整的带FILTER修饰的SUM聚合表达式整体放入COALESCE中即可,聚合运算返回NULL时会自动被替换为0:

SELECT
  COALESCE(
    SUM(PRICE) FILTER (WHERE date(order_date) >= (cast(current_date as date) - interval '1' day)),
    0
  ) as day1

如果你的过滤条件有多个,只需要把对应的过滤逻辑放到SUM后的FILTER括号内即可,外层统一用COALESCE做NULL值替换。

内容的提问来源于stack exchange,提问作者merchmallow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:57:04