Mysql abfrage in Postgresql umwandeln

Fragen und Probleme zu PL/pgSQL.
Antworten
Rover
Neuer Benutzer
Beiträge: 25
Registriert: Mi 8. Nov 2006, 08:41
Wohnort: Bielefeld

Mysql abfrage in Postgresql umwandeln

Beitrag von Rover »

Hallo bin grade dabei einen MySql server in einen Postgresql umzuwandeln.
Im Moment versuche ich die Sql-abfragen so umzuwandeln, dass sie in Postgresql funktionieren.
Bin dabei auf folgendes problem gestoßen:

Mysql:
select sum(feld=0), sum(feld=1), sum(feld=2) from table

(Sum ist in diesem fall wie ein count, diese 3 Abfragen würden der oberen entsprechen:
Select count(feld) from table where feld=0
Select count(feld) from table where feld=1
Select count(feld) from table where feld=2
)

Ich will also zählen, wie oft welcher Wert in dem Feld steht.
Wenn ich den gleichen Befehl in Postgresql abschicke, funktioniert er zwar, aber postgresql scheint das =0,=1,=2 völlig zu ignorieren.

Ich hoffe jemand kennt eine Möglichkeit dieses Problem auf eine ähnlich leichte art wie in mysql (möglichst in einer einzigen abfrage) zu lösen

akretschmer
Erfahrener Benutzer
Beiträge: 7714
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Beitrag von akretschmer »

Du suchst CASE.

test=*# select sum(case when wert=1 then 1 else 0 end) as count_1, sum(case when wert=2 then 1 else 0 end) as count_2 from foo;
count_1 | count_2
---------+---------
3 | 2
(1 row)

test=*# select * from foo;
wert
------
1
1
1
2
2
3
(6 rows)

Rover
Neuer Benutzer
Beiträge: 25
Registriert: Mi 8. Nov 2006, 08:41
Wohnort: Bielefeld

Beitrag von Rover »

Ja genau sowas hab ich gesucht :D
Vielen Dank!!

Antworten