Re: Unexpected behavior with CASE statement - Mailing list pgsql-general

From Jimmy Choi
Subject Re: Unexpected behavior with CASE statement
Date
Msg-id [email protected]
Whole thread Raw
In response to Re: Unexpected behavior with CASE statement  ("Rodrigo De León" <[email protected]>)
Responses Re: Unexpected behavior with CASE statement
List pgsql-general
This will work for this particular example. But what if my case
statement is more complicated than that? Example:

select
   metric_type,
   case metric_type
      when 0 then
         sum (1 / val)
      when 1 then
         sum (val)
      when 2 then
         max (val)
      when 3 then
         min (val)
   end as result
from metrics
group by metric_type

Thanks!

On 10/3/07, Rodrigo De León <[email protected]> wrote:
> On 10/3/07, Jimmy Choi <[email protected]> wrote:
> > I expect to get the following result set:
> >
> > metric_type | result
> > ------------+-------
> >     0       |   2
> >     1       |   3
>
> Try:
>
> SELECT   metric_type
>        , SUM(CASE metric_type
>                WHEN 0
>                  THEN 1 / val
>                WHEN 1
>                  THEN val
>              END) AS RESULT
>     FROM metrics
> GROUP BY metric_type
> ORDER BY metric_type
>

pgsql-general by date:

Previous
From: "Rodrigo De León"
Date:
Subject: Re: Unexpected behavior with CASE statement
Next
From: Alvaro Herrera
Date:
Subject: Re: Unexpected behavior with CASE statement