【问题标题】:postgresql query to replace 0 with "Null"postgresql 查询用“Null”替换 0
【发布时间】:2022-01-22 17:31:38
【问题描述】:

我正在处理报告,问题是我得到的是空值而不是 0。由于我设法按月获得此报告,因此我无法继续处理此查询。如果我可以添加任何更改,请帮助我。提前致谢。

select sub.district_name,sub.service_name,service_code, 
        sum(Approved_count) filter (where Month_ = 1) AS "January approved" ,
        sum(Rejected_count) filter (where Month_ = 1) AS "January Rejected", 
        sum(Approved_count) filter (where Month_ = 2) AS "February approved" ,
        sum(Rejected_count) filter (where Month_ = 2) AS "February Rejected", 
        sum(Approved_count) filter (where Month_ = 3) AS "March approved" ,
        sum(Rejected_count) filter (where Month_ = 3) AS "March Rejected", 
        sum(Approved_count) filter (where Month_ = 4) AS "April approved" ,
        sum(Rejected_count) filter (where Month_ = 4) AS "April Rejected", 
        sum(Approved_count) filter (where Month_ = 5) AS "May approved" ,
        sum(Rejected_count) filter (where Month_ = 5) AS "May Rejected", 
        sum(Approved_count) filter (where Month_ = 6) AS "June approved" ,
        sum(Rejected_count) filter (where Month_ = 6) AS "June Rejected",
        sum(Approved_count) filter (where Month_ = 7) AS "July approved" ,
        sum(Rejected_count) filter (where Month_ = 7) AS "July Rejected",
        sum(Approved_count) filter (where Month_ = 8) AS "Auguest approved" ,
        sum(Rejected_count) filter (where Month_ = 8) AS "Auguest Rejected",
        sum(Approved_count) filter (where Month_ = 9) AS "September approved" ,
        sum(Rejected_count) filter (where Month_ = 9) AS "September Rejected",
        sum(Approved_count) filter (where Month_ =10) AS "October approved" ,
        sum(Rejected_count) filter (where Month_ =10) AS "October Rejected",
        sum(Approved_count) filter (where Month_ = 11) AS "November approved" ,
        sum(Rejected_count) filter (where Month_ = 11) AS "November Rejected",
        sum(Approved_count) filter (where Month_ = 12) AS "December approved" ,
        sum(Rejected_count) filter (where Month_ = 12) AS "December Rejected",
                sum(Approved_count)  "Total Approved Applications",
                sum(Rejected_count)  "Total Rejected Application"

        
        from
        (
        select district_name,service_name,sum(approved) as Approved_count, sum(rejected) as Rejected_count,service_code,cast(EXTRACT(month FROM status_upd_dt) as Numeric) as Month_   from dashboard
where cast(status_upd_dt as date) between '2019-01-01' and '2019-12-31' 
        group by district_name,service_name ,service_code,status_upd_dt order by district_name,service_code,status_upd_dt asc
        )sub
        group by sub.district_name,sub.service_name,service_code order by sub.district_name,service_code

【问题讨论】:

    标签: sql postgresql select sum


    【解决方案1】:

    sum 返回 null 如果它什么都不和。您可以使用coalesce 显式处理此问题。例如:

    coalesce(sum(Approved_count) filter (where Month_ = 1), 0) AS "January approved" ,
    

    【讨论】:

      猜你喜欢
      • 2013-05-26
      • 2019-02-22
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多