‘t Is zo één van

‘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.

Zeg uw gedacht

Navigatie

Vorige entry:

Volgende entry:

» homepagina, archief

Vriendjes

<insert standard disclaimer>

Alles wat hier staat is mijn eigen opinie. Het wordt niet nagelezen of goedgekeurd door mijn werkgever voor het on-line komt, en ik bied geen enkele garantie voor kwaliteit of correctheid.

Mijn werkgever is het niet noodzakelijk eens met wat ik schrijf, en het spreekt vanzelf dat hij dan ook op geen enkele wijze aansprakelijk kan zijn voor wat ik hier publiceer.