Max Funktion

Max Funktion

am 25.01.2006 15:40:09 von Oliver Benning

Hallo,

ich möchte eine Spalte x aus dem zuletzt eingefügtem Datensatz (also der
mit der höchsten Auto-Inkrement-ID) selektieren.

SELECT x FROM test HAVING y = max(y);

Jetzt meckert MySQL (4.1) natürlich, daß er 'y' nicht erkennt, also
nehme ich es in SELECT x, y ... auf und nun kommt zwar kein Fehler mehr,
aber ein leeres Ergebnis. Hab für max(y) auch schon einen Alias
eingesetzt, bringt aber auch nichts.

Wie geht es richtig?

Gruß,
Oliver

Re: Max Funktion

am 25.01.2006 15:50:43 von Guy Walter

Oliver Benning wrote:
> Hallo,
>
> ich möchte eine Spalte x aus dem zuletzt eingefügtem Datensatz (also der
> mit der höchsten Auto-Inkrement-ID) selektieren.
>
> SELECT x FROM test HAVING y = max(y);
>
> Jetzt meckert MySQL (4.1) natürlich, daß er 'y' nicht erkennt, also
> nehme ich es in SELECT x, y ... auf und nun kommt zwar kein Fehler mehr,
> aber ein leeres Ergebnis. Hab für max(y) auch schon einen Alias
> eingesetzt, bringt aber auch nichts.
>
> Wie geht es richtig?
>
> Gruß,
> Oliver
>
Versuch doch mal:
SELECT x
FROM test
WHERE y = (SELECT MAX(y) FROM test)

Re: Max Funktion

am 25.01.2006 15:51:48 von Hartmut Holzgraefe

Oliver Benning wrote:
> ich möchte eine Spalte x aus dem zuletzt eingefügtem Datensatz (als=
o der=20
> mit der höchsten Auto-Inkrement-ID) selektieren.
>=20
> SELECT x FROM test HAVING y =3D max(y);

SELECT x FROM test ORDER BY y DESC LIMIT 1;



--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

http://www.mysql.com/support/

Re: Max Funktion

am 25.01.2006 15:52:48 von Christian Kirsch

Oliver Benning schrieb:
> Hallo,
>
> ich möchte eine Spalte x aus dem zuletzt eingefügtem Datensatz (also der
> mit der höchsten Auto-Inkrement-ID) selektieren.
>
> SELECT x FROM test HAVING y = max(y);
>

Bist Du sicher, dass Du nicht LAST_INSERT_ID() benutzen willst?

Re: Max Funktion

am 25.01.2006 17:29:12 von Hartmut Holzgraefe

Christian Kirsch wrote:
>> ich möchte eine Spalte x aus dem zuletzt eingefügtem Datensatz (al=
so der=20
>> mit der höchsten Auto-Inkrement-ID) selektieren.
>>
>> SELECT x FROM test HAVING y =3D max(y);
>>
>=20
> Bist Du sicher, dass Du nicht LAST_INSERT_ID() benutzen willst?

war auch meine erste Vermutung, aber bei genauerem Hinsehen scheint
das Auslesen unabhängig vom Einfügen zu sein ... sonst wäre x ja eh=

noch bekannt

--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

http://www.mysql.com/support/