yo,
SELECT url, count(url) as cnt, ts FROM log GROUP BY url ORDER BY ts DESC
dein dbms scheint mysql zu sein und du bist auf den hier vielfach diskutierten "mysql GROUP BY bug" hereingefallen. grundsätzlich gilt, dass du nur spalten ausgeben kannst, über die du auch gruppiert hast, bzw. die eine aggregatfunktion beinhalten. der grund dafür liegt in der grupierung selbst, du fügst halt mehrere dinge zu einer gruppe zusammen.
mysql gweht dort einen anderen weg, aus performancegründen lassen sie auch spalten in der ausgabe zu, über die du nicht gruppiert hast und die keine aggregat-funktion sind. in deinem falle ist das die spalte ts. da du über die spalte nicht gruppiert hast (was auch richtig ist), nimmt mysql eben einen zufälligen wert der in der jeweiligen gruppierung enthalten ist, muss sich ja für einen entscheiden. abhilfe für dich ist einfach, lege die aggregat-funktion MAX um die ts spalte.
SELECT url, count(url) cnt, MAX(ts) Maxdatum
FROM log
GROUP BY url
ORDER BY MAX(ts) DESC
;
Ilja