Tiens, hoe zou ik een query in elkaar moeten steken om te zien welk pad door een site het meest populair is?
Deze query geeft mij voor al wie meer dan één pagina bezocht op een site waar session management aan staat, het aantal pagina’s bezocht per sessie, door wie, en hoevele tijd ze minstens op de site spendeerden (dus niet inbegrepen wat ze op de laatste pagina gedaan hebben):
SELECT log_sessionid, log_remotehost,
max(log_datetime)-min(log_datetime) as timespent,
count(log_ID) as pagesvisited
FROM tblLog
WHERE log_sessionID is not null
GROUP BY log_sessionID, log_remotehost
HAVING count(log_ID)>1
ORDER BY log_sessionID
Da’s dus niet moeilijk. Sessies van repeat visitors komen uit iets dergelijks:
SELECT log_clientID, log_sessionid, log_remotehost, min(log_datetime) AS mindatetime,
max(log_datetime) AS maxdatetime, max(log_datetime) – min(log_datetime) AS timespent,
count(log_ID) AS pagesvisited
FROM tblLog tblLog_1
WHERE log_sessionID IS NOT NULL
GROUP BY log_sessionID, log_clientID, log_remotehost
HAVING count(log_ID) > 1 AND
log_clientid IN
(SELECT DISTINCT log_clientId
FROM tblLog
WHERE log_datetime < min(tblLog_1.log_datetime))
ORDER BY log_clientID, log_sessionID
Da’s ook nog niet moeilijk, maar ik heb niet direkt een idee hoe ik in één query een lijst van paden door de site van krijgen. Mijn hoofd staat er tenandere niet naar om er in detail naar te kijken, ‘t zal voor vanavond voor de tv zijn.
Als ik het vind tenminste, want ik heb zo’n flauw vermoeden dat het niet zal gaan in één query. Het triestige van de zaak is dat ik
zelfs geen gedacht heb van hoe ik het zou doen met een mengeling van SQL en ColdFusion.