Re: coalesce and aggregate functions

Поиск
Список
Период
Сортировка
От Kevin Grittner
Тема Re: coalesce and aggregate functions
Дата
Msg-id 457E77DE.EE98.0025.0@wicourts.gov
обсуждение исходный текст
Ответ на coalesce and aggregate functions  (Patrick Welche <prlw1@newn.cam.ac.uk>)
Список pgsql-hackers
COALESCE returns the leftmost non-null value.  Perhaps what you wanted
was sum(coalesce(b,0)) instead of coalesce(0,sum(b))

>>> On Tue, Dec 12, 2006 at  9:22 AM, in message
<20061212152219.GC290@quartz.itdept.newn.cam.ac.uk>, Patrick Welche
<prlw1@newn.cam.ac.uk> wrote: 
> Is this a bug, or don't I understand coalesce()?
> 
> create table test (a int, b int);
> insert into test values (1,null);
> insert into test values (2,1);
> insert into test values (2,2);
> select * from test;                             --  returns:
> select sum(b) from test where a=1;              --  null
> select sum(b) from test where a=2;              --  3
> select coalesce(0,sum(b)) from test where a=1;  --  0
> select coalesce(0,sum(b)) from test where a=2;  --  0
> delete from test where a=1;
> select coalesce(0,sum(b)) from test where a=2;  --  0 !
> 
> So when I use coalesce() with sum(), I always get the constant. I
would
> have expected it only in the case where sum() returns null..
> 
> What am I missing?



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

Предыдущее
От: Gregory Stark
Дата:
Сообщение: Re: coalesce and aggregate functions
Следующее
От: "Albe Laurenz"
Дата:
Сообщение: Re: unixware and --with-ldap