postgresql Where条件不存在时如何聚合并返回零

bihw5rsg  于 2022-12-03  发布在  PostgreSQL
关注(0)|答案(1)|浏览(174)

我有如下表。
第一个
它返回

max
Null

当我设置case_no = 'A22010021'时它返回

max
3

我想要的结果是得到1,其中提取了不存在的case_no

max
0

造成这种情况的根本原因是什么?有没有办法做到这一点?
谢谢

zzwlnbp8

zzwlnbp81#

我认为在您的用例中不需要groupby子句。

select coalesce(max(history_no),0)
   from table_case_no where case_no='A220100234'

如果你想使用groupby子句,那么使用下面查询来填充缺少的case,不放入0值。

select case_no,max(history_no) max_history_no
    from table_case_no  where  case_no = 'A22010022' group by case_no
union
--below query for non-existent case no
select 'A22010022' as id,0 
    where not exists
    (
        select 1 from table_case_no where case_no='A22010022'
    )
    ;

相关问题