Обсуждение: Fwd: Re: sum(bool)?

Поиск
Список
Период
Сортировка

Fwd: Re: sum(bool)?

От
"J.Fernando Moyano"
Дата:
El Viernes 23 Febrero 2001 16:22, escribiste:
> hi there,
>
> i want to add up the "true" values of a comparison like
>
> sum(a>b)
>
> it just doesn't work like this
>
> any workaround?
>
> it is postgresql 7.0 under linux
>
> thanks
>
> olaf

I did exactly the same thing two months ago ....

I created this tiny function:

CREATE FUNCTION bool2int(bool) RETURNS integerAS 'select (case when $1=true then 1 else 0 end)'LANGUAGE 'sql';


You can do:  sum(bool2int(a>b))

easy ??? ;-))


--
Fernando Moyano

Frase del día:
--------------
El medico me prohibio beber wiski, ahora lo congelo y me lo como!

(*) SymeX ==> http://symex.lantik.com
(*) WDBIL ==> http://wdbil.sourceforge.net
(*) Informate sobre LINUX en http://www.linux.org



Re: Fwd: Re: sum(bool)?

От
darcy@druid.net (D'Arcy J.M. Cain)
Дата:
Thus spake J.Fernando Moyano
> El Viernes 23 Febrero 2001 16:22, escribiste:
> > i want to add up the "true" values of a comparison like
> >
> > sum(a>b)
> >
> > it just doesn't work like this
> >
> > any workaround?
> 
> I did exactly the same thing two months ago ....
> 
> I created this tiny function:
> 
> CREATE FUNCTION bool2int(bool) RETURNS integer
>     AS 'select (case when $1=true then 1 else 0 end)'
>     LANGUAGE 'sql';
> 
> 
> You can do:  sum(bool2int(a>b))
> 
> easy ??? ;-))

Almost as easy as "SELECT COUNT(*) FROM table WHERE a > b"

-- 
D'Arcy J.M. Cain <darcy@{druid|vex}.net>   |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 425 1212     (DoD#0082)    (eNTP)   |  what's for dinner.