sum, min, max and null

Поиск
Список
Период
Сортировка
От Nagy László Zsolt
Тема sum, min, max and null
Дата
Msg-id 53F24431.9030801@shopzeus.com
обсуждение исходный текст
Ответы Re: sum, min, max and null
Re: sum, min, max and null
Список pgsql-admin
Hi,

I understand that sum, min and max ignore null values. So for example
this query:

select sum(v),min(v) from (
     select 1 as v
     union all select null
     union all select 3
) s

will result in sum(v)=4 , min(v)=1.

However, I'm in need of a different interpretation, where sum() should
change the output value to null if there is any NULL value in the input.
How do I achieve this? I was experimenting with this:


select case when sum(hasnull)>0 then null else sum(v) end as mysum from (
     select v, case when v is null then 1 else 0 end as hasnull
     from (
     select 1 as v
     union all select null
     union all select 3
) s ) s2

It works but this is so ugly that I'm not even trying to use it in
production code. Is there any better way to do it?

Thanks,

    Laszlo



В списке pgsql-admin по дате отправления:

Предыдущее
От: "liuyuanyuan"
Дата:
Сообщение: OF TYPE without SCHEMA specified in TABLE creation interface
Следующее
От: Craig James
Дата:
Сообщение: pg_upgrade FAIL: can't find tablespaces