Diciamo che GROUP BY preleva il primo record che soddisfa la condizione del raggruppamento. Il campo MAX(visit) diventa una colonna a se stante con il valore piu' alto di visit (cos'e' una data? unix timestamp?)
Quindi id_user e username si presumono siano univoci... cioe' che ad ogni username corrisponda un id_user che verrebbero quindi selezionati in ogni caso da group by, mentre altra storia e' per l'IP che sara' quello del primo record che soddisfa GROUP BY e non quello di MAX(visit). Oppure potrebbe anche esserlo, ma solo per questione di mera casualita' e non per la specifica richiesta .
Potesti provare ad aggiungere HAVING in modo da forzare la scelta sul record con piu' alto valore di visit... esempio da provare ovviamente...
codice:SELECT id_user, username, IP, MAX(visit) AS last FROM visite GROUP BY id_user HAVING visit = MAX(visit) ORDER BY username![]()