‘t Is zo één van die dingen waar ik weet dat ik verkeerd bezig ben, maar dat ik niet direkt vanbuiten weet hoe ik het ten gronde moet oplossen: gegeven een tabel tblLog waarin een veld log_remoteHost, hoe haal ik daar een lijst van de meest gebruikte TLD’s uit?
Ik heb op het ogenblik de volgende vieze query:
SELECT reverse(left(reverse(log_remoteHost),charindex(‘.’,reverse(log_remoteHost))-1)) as tld,
count(log_id) as tot, max(log_datetime) as latest
FROM tblLog
WHERE charindex(‘.’,log_remotehost)>0
GROUP BY reverse(left(reverse(log_remoteHost),charindex(‘.’,reverse(log_remoteHost))-1))
ORDER BY tot desc, reverse(left(reverse(log_remoteHost),charindex(‘.’,reverse(log_remoteHost))-1))
Ik weet pertinent zeker dat dit echt heel erg vies is, maar is er een betere manier? In een andere taal zou ik iets zoen als listlast(log_remoteHost,’.’) of zo, maar ik heb er geen flauw idee van wat de equivalente functie in SQL is.