SQL MAX Abfragen

Hi,
habe folgendes Problem:
Ich möchte von einer Tabelle user denjenigen Benutzer abfragen, der am meisten eine seite besucht hat. Ich habe folgendes probiert:

SELECT *, MAX(user.max_visit) FROM user GROUP BY user.id ORDER BY NULL.

Das Resultat enthält zwar die meisten Besuche (max_visit) aber nicht die user ID und alle andere Spalten dieses Users, sonder die vom ersten User.
Daher schlicht die Frage: Wie bzw. ist es möglich von einer Tabellen den Eintrag abzufragen mit dem maximalen Wert einer Spalte. Also nicht nur den maximalen Wert, sondern den ganzen Datensatz.
Danke!

Hallo Salami,
Du musst einen geschachtelten SQL anfertigen.
Mit den Subselects ermittelst Du Dir die Max-Zahl und die User-ID,
mit dem normalen ermittelst Du Dir alle Daten dieses Users:

Also bspw:

SELECT * FROM tabelle WHERE user-id IN ( SELECT user_id FROM tabelle WHERE max.visit IN ( SELECT MAX(max.visit) FROM tabelle))

Ich habes aber nicht getestet nur einfach so …

Gruß
Klaus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Salami,

ich machs mal kurz, ich glaube Du meinst:

SELECT TOP 1 * FROM user ORDER BY user.max_visit DESC

liebe Grüße
Marcus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi!

Die Lösung von Klaus war schon Nahe (aber mMn nicht _ganz_ korrekt);
Ich würde es (unter Oracle) so machen:

select u1.\*
 from user u1,
 (select user,max(max\_visit) max\_visit from user) u2
 where u1.user=u2.user
 and u1.max\_visit=u2.max\_visit;

oder so könnte es auch funktionieren

select \*
 from user u1
 where u1.max\_visit=(select max(u2.visit)
 from user u2
 where u1.user=u2.user)

Das ganze ist natürlich ungetestet …
Grüße,
Tomh