Re: CASE/WHEN behavior with NULLS - Mailing list pgsql-general

From Jasen Betts
Subject Re: CASE/WHEN behavior with NULLS
Date
Msg-id k1v0au$1dk$1@reversiblemaps.ath.cx
Whole thread Raw
In response to CASE/WHEN behavior with NULLS  (Thalis Kalfigkopoulos <tkalfigo@gmail.com>)
List pgsql-general
On 2012-09-01, Chris Angelico <rosuav@gmail.com> wrote:
> On Sat, Sep 1, 2012 at 12:07 PM, David Johnston <polobo@yahoo.com> wrote:
>> These are not equivalent if some values of foo are not-null and you want the sum of all non-null values while
replacingany nulls with zero.  So the decision depends on what and why you are summing. 
>
> It comes to the same result with SUM though isn't it?

no

sum over zero rows always returns null.
an external coalesce will make the result 0 whilst an internal coalesce
will have no effect and NULL will be the result.

with t as ( select 1::int as a  where false )
select sum(coalesce (a,0)) as inner,coalesce (sum(a),0) as outer from t;

--
⚂⚃ 100% natural

pgsql-general by date:

Previous
From: Chris Travers
Date:
Subject: Re: "Too far out of the mainstream"
Next
From: Jasen Betts
Date:
Subject: Re: C locale versus en_US.UTF8. (Was: String comparision in PostgreSQL)