Sven Rautenberg: Frage zu einer MySQL Abfrage

Beitrag lesen

Moin!

mysql_query("select avg(anz) from at_data");

jedoch möchte ich den Durchscnitt aller Werta haben, bei denen 'anz' nicht 999 ist. Wie mache ich das?

Hm, das klingt irgendwie nicht gut.

Welche Bedeutung hat denn diese Zahl "999"? Ich hoffe doch nicht, daß sie für "keine Daten eingegeben" steht, denn das wäre wirklich ganz übel aus Sicht der Datenverarbeitung.

Deshalb sei an dieser Stelle erwähnt: Es gibt für solche Probleme einen Ausweg. :)

MySQL hat die Möglichkeit, einen Datenbankwert als "Null" zu kennzeichnen, also als nicht vorhanden. Dazu muß deine Tabelle bei ihrer Definition natürlich passend angelegt werden, damit das erlaubt ist. Dann kannst du (ich hab's gerade getestet) einfach den Durchschnitt aller Spalten abfragen, und wenn eine Spalte eben "Null" ist, wird sie nicht berücksichtigt.

- Sven Rautenberg