From: | bricklen <bricklen(at)gmail(dot)com> |
---|---|
To: | Janek Sendrowski <janek12(at)web(dot)de> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: devide and summarize sql result (all) |
Date: | 2013-08-15 22:24:31 |
Message-ID: | CAGrpgQ_B4kHZk4yfBQbG6q4Jn+-ksg9m0BTWpeV4FVqQ4sQ2bA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Thu, Aug 15, 2013 at 1:51 PM, Janek Sendrowski <janek12(at)web(dot)de> wrote:
> Hi,
>
> My sql query results sth. like this:
>
> user percentage
> franz 78%
> smith 98%
> franz 81%
> jason 79%
> smith 89%
> smith 85%
> smith 99%
>
> Now I'd like to summarize the percentages oder every user like this.
> smith
> 2 matches 95-100%
> 2 matches 85-95%
> 0 mathes 75-85%
>
> franz
> 0 mathes 95-100%
> ...
>
A CASE statement should work, if you are willing to hard-code the list of
expressions.
SELECT username,
sum(case when avg between 76 and 85 then 1 else 0 end) as "76 to
85",
sum(case when avg between 86 and 95 then 1 else 0 end) as "86 to
95",
sum(case when avg > 95 then 1 else 0 end) as ">95"
FROM yourtable
GROUP BY username
From | Date | Subject | |
---|---|---|---|
Next Message | Robert James | 2013-08-15 22:39:57 | Re: Escape string for LIKE op |
Previous Message | Vik Fearing | 2013-08-15 21:49:32 | Re: Escape string for LIKE op |