Originariamente inviato da Avalox
perchè magari DATA_CHAT è diverso anche se LUOGO_CHAT è uguale

Non vorrei dire fesserie, ma il distinct viene fatto se restituisce righe PERFETTAMENTE UGUALI. Se una riga differisce dall'altra anche per un solo campo, allora per SQL sono due righe distinte e quindi te le restituisce entrambe.
esatto, il DISTINCT si estende a tutta i campi della SELECT. Bisognerebbe usare GROUP BY che pero' prendera' il primo record che trova a prescindere dalla data e quindi servira' pure prelevare la data maggiore con il MAX(DATA_CHAT), sempre che sia in uno dei formati data.