Hallo,
Meine Idee ist folgende, ich groupiere einfach die IP'S und alasse mir die IPs ausgeben die die letzten 10 Minuten online waren. Doch mein Problem ist das sortieren innerhalb einer groupierung?
ja, das ist ein typisches MySQL-Problem. MySQL ist am wenigsten geeignet, um den Umgang mit GROUP BY und Aggregatsfunktionen zu lernen.
select ip, DATE_FORMAT(date,'%d.%m.%Y %H.%i.%s') datum from statistik GROUP BY ip ORDER by date ASC
Es ist ganz einfach. Auf Dein Datum wendest Du eine Aggregatsfunktion an. Das ist das, was andere DBMS zwingend verlangen. Du möchtest den neuesten Zeitpunkt zu jeder IP. Wunderbar, nutze einfach MAX() und formatiere diesen Wert wie gehabt mit DATE_FORMAT:
SELECT
ip,
DATE_FORMAT([link:http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.html#function_max@title=MAX](date), '%d.%m.%Y %H.%i.%s')) datum
FROM
statistik
GROUP BY
ip
Du möchtest nur diejenigen, die in den letzten 10 Minuten einen Eintrag hatten? Schränke die zu betrachtenden Datensätze mit der WHERE-Klausel ein. Das kriegst Du bestimmt selbst hin.
Freundliche Grüße
Vinzenz