select in mehrere Spalten

jangbu

Benutzer
Beiträge
12
Hallo,

kann mir jemand sagen ob folgende Darstellung eines select geht:

in einen DB-Feld "Typ" können max drei statische Informationen stehen [A,B,C]. Ich hätte gern das der select die drei möglichen Varianten in drei separaten output-Spalten darstellt, also ein DB-Feld in drei separte Spalten.
 
Werbung:
suchst Du sowas?

Code:
test=*# select * from jangbu ;
 typ
-----
 a
 a
 b
 c
 c
 a
 b
 b
 a
 c
 c
 c
(12 Zeilen)

test=*# select count(1) filter (where typ = 'a') as a, count(1) filter (where typ = 'b') as b, count(1) filter (where typ = 'c') as c from jangbu ;
 a | b | c
---+---+---
 4 | 3 | 5
(1 Zeile)

test=*#

Hint: FILTER (...) können nur sehr wenige Datenbanken, falls Deine das nicht kann, dann mit case when ... arbeiten.
 
Falls FILTER nicht unterstützt wird:

Code:
test=*# select sum(case when typ='a' then 1 else 0 end) as a, sum(case when typ='b' then 1 else 0 end) as b, sum(case when typ='c' then 1 else 0 end) as c from jangbu ;
a | b | c
---+---+---
4 | 3 | 5
(1 Zeile)

*typo fixed*
 
Werbung:
Zurück
Oben