Re: Sum of columns
| От | Rob Sargentg |
|---|---|
| Тема | Re: Sum of columns |
| Дата | |
| Msg-id | 522D3226.2030407@gmail.com обсуждение исходный текст |
| Ответ на | Sum of columns (janek12@web.de) |
| Список | pgsql-general |
On 09/08/2013 07:12 PM, janek12@web.de wrote:
Hi,this is my query:SELECT user,sum(CASE WHEN lev >= 50 AND lev < 70 THEN 1 ELSE 0 END) as a,
sum(CASE WHEN lev >= 70 AND lev < 80 THEN 1 ELSE 0 END) as b,
sum(CASE WHEN lev >= 80 AND lev <= 90 THEN 1 ELSE 0 END) as c,sum(CASE WHEN lev > 90 THEN 1 ELSE 0 END) as d,
(SELECT a + b + a + d) AS matches
FROM t_temp_fts
GROUP BY user'I like to add up the 4 columns a,b,c and d of every user, but it doesn't work like this.Does anyone know a solutionJanek Sendrowski
How far does this get you?
insert into t_temp_fts values('rob', 51), ('rob', 71), ('rob', 81), ('rob', 91);
insert into t_temp_fts values('jon', 51), ('jon', 71), ('jon', 81), ('jon', 91);
SELECT distinct usern,
(select count(*) from t_temp_fts i where o.usern = i.usern and lev >= 50 AND lev < 70) as a,
(select count(*) from t_temp_fts i where o.usern = i.usern and lev >= 70 AND lev < 80)as b ,
(select count(*) from t_temp_fts i where o.usern = i.usern and lev >= 80 AND lev < 90)as c ,
(select count(*) from t_temp_fts i where o.usern = i.usern and lev > 90) as d
from t_temp_fts o
;
usern | a | b | c | d
-------+---+---+---+---
jon | 1 | 1 | 1 | 1
rob | 1 | 1 | 1 | 1
(2 rows)
В списке pgsql-general по дате отправления: