Problem mit IN in SQL Query

Problem mit IN in SQL Query

am 13.06.2007 20:14:02 von Christian Franzen

Hi!

Ich hab mal wieder ein Problem mit einem SQL Statement. Ich habe eine
Tabelle (InnoDB, dürfte aber egal sein denke ich) in der ich mit folgenden
Feldern arbeite:

Id, Integer
Gruppe, Integer
Wert, Float

Jetzt möchte ich folgendes SQL Statement etwas erweiter:

SELECT AVG(Wert), COUNT(Id) FROM tabelle
GROUP BY Gruppe

Das ganze liefert mit also den Durchschnitt von Wert und die Anzahl der
Datensätze für jede Gruppe. Jetzt möchte ich meiner Abfrage ein weiters Feld
hinzufügen, das mit über einen Boolean anzeigt, in welcher Gruppe ein
Datensatz mit einer bestimmten ID liegt. Das Feld hat also für jede Gruppe
den Wert 0 außer für die eine Gruppe in der der Datensatz liegt. Existiert
die angegebene ID nicht so ist das Feld für jede Gruppe 0. Jetzt die Frage,
wie mache ich das? Ich habe ein kleines Workarounf gebastelt, das schein mit
aber nicht wirklich sauber. Ich habe dem Statement folgendes Feld
hinzugefügt (hier als Beipsiel für ID 5);

SUM( '5' IN Id )

Irgendwelche Ideen? Ich bin auch nicht zu faul das Handbuch zu lesen, ein
Stichwort würde mir vollkommen reichen.

mfg Xion

Re: Problem mit IN in SQL Query

am 13.06.2007 21:12:05 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Problem mit IN in SQL Query

am 14.06.2007 12:15:05 von Christian Franzen

> Time: 0.848 ms
> test=*# select avg(wert), count(id), case when gruppe=2 then 1 else 0 end
> as in_gruppe_2 from foobar group by

Klingt gut. Danke!