ThomasX: Frage zu einer MySQL Abfrage

Hallo,
ich habe eine Frage

ich habe diese Abfrage

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?

Dies habe ich bereits versucht
mysql_query("select avg(anz where anz != '999') from at_data");
mysql_query("select avg(anz) where anz != '999' from at_data");

Danke im Voraus

  1. Halihallo

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

    Dies habe ich bereits versucht
    mysql_query("select avg(anz where anz != '999') from at_data");
    mysql_query("select avg(anz) where anz != '999' from at_data");

    Was wär mit:

    SELECT AVG(anz) FROM at_data WHERE ant<>'999'???

    Auf die Struktur des SELECT-Statements achten!

    Viele Grüsse

    Philipp

  2. 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