Jayni
27. August 2013 um 00:11
1
Hi,
Das ist meine abfrage
SELECT v_rec1.user,
sum(CASE WHEN v_rec_fts.lev BETWEEN 0 AND 25 THEN 1 ELSE 0 END) as "0 to 25",
sum(CASE WHEN v_rec_fts.lev BETWEEN 25 AND 50 THEN 1 ELSE 0 END) as "25 to 50",
sum(CASE WHEN v_rec_fts.lev BETWEEN 50 AND 100 THEN 1 ELSE 0 END) as "50 to 100"
INTO v_rec2
GROUP BY user;
Das Problem das ich habe ist dass ich die Spannen von jedem benutzer einzelnd zaehlen moechte und nicht von allen Benutzen zusammen.
Jayni
Jayni:
Hi,
Das ist meine abfrage
SELECT v_rec1.user,
sum(CASE WHEN v_rec_fts.lev BETWEEN 0 AND 25 THEN 1 ELSE 0 END) as "0 to 25",
sum(CASE WHEN v_rec_fts.lev BETWEEN 25 AND 50 THEN 1 ELSE 0 END) as "25 to 50",
sum(CASE WHEN v_rec_fts.lev BETWEEN 50 AND 100 THEN 1 ELSE 0 END) as "50 to 100"
INTO v_rec2
GROUP BY user;
Das Problem das ich habe ist dass ich die Spannen von jedem benutzer einzelnd zaehlen moechte und nicht von allen Benutzen zusammen.
Jayni
Erst einmal hast Du das Problem, daß FROM fehlt.
Du zählst die Spannen doch je user? Willst Du je User andere Grenzen definieren? Das könnte so gehen:
test=*# select * from foo;
id | val
----+-----
1 | 10
1 | 20
2 | 100
2 | 200
(4 rows)
test=*# select * from foo_user;
i | range1 | range2
---+---------+-----------
1 | [1,10) | [10,100)
2 | [1,100) | [100,300)
(2 rows)
test=*# select id, sum((select count(*) from foo_user where id=foo.id and range1 @> foo.val)), sum((select count(*) from foo_user where id=foo.id and range2 @> foo.val)) from foo group by id;
id | sum | sum
----+-----+-----
1 | 2 | 2
2 | 0 | 2
(2 rows)
Und nun: Kaffee …
Jayni
27. August 2013 um 21:18
3
Ich dachte ich zaele alle zeilen in der Spalte lev die die spanne haben.
Ich hab die FROM klausel weggelassen, da das nicht funktioniert:
SELECT v_rec1.user FROM v_rec1
Ich hab zurzeit leider nicht die moeglichkeit das zu testen, aber in 2 tagen
Jayni