Behöver lite hjälp här.. Du kan istället börja med denna som grund: Jo, jag sätter med global.asa vid Session_OnStart en rad, där allt är tomt utom sessionID, IP, datum, tid och Message.. (samma vid sessiopnOnEnd men då bara med sessionID, datum, tid och message till Session end) Jaha, måste säga att jag tycker själva designen och användandet är lite skumt, men det borde fungera med något sånt här: Column 'x.PATH_INFO' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. Detta verkade fungera:SQL fråga..
Hmm.. lite fakta.. (Det är en statistiksida som ska göras)
Har en tabell som ser ut såhär:
Id|ShopID|SessionID|HTTP_REFERER|HTTP_USER_AGENT|QUERY_STRING|PATH_INFO|REMOTE_ADDR|InDatum|InTid|Message
När en session startas står det "session start" i Message
Nu vill jag ha ut vilken sida man vanligtvis kommer in på först.. Alltså startsidan..
Det måste bli Path_Info på den sida som kommer direkt efter "Session Start" och det ska vara Distinct på SessionID, så man bara får startsidan för varje NY session.. Och utav detta vill jag ha ut ANTALET GÅNGER varje sida varit första sidan, samt vilken sida det var..
Har klurat ut följande:
SELECT DISTINCT stat.SessionID,
(SELECT Path_Info FROM Statistik WHERE ID = stat.ID) as Sida
FROM statistik as stat
WHERE
stat.ShopID = 1 AND
stat.InDatum Between '2002-12-23' AND '2002-12-23' AND
stat.Message Is Null
Vilket ger mig:
SessionID Sida
332719752 /Default.asp
332721877 /cart.asp
332721877 /default.asp
332721877 /leftframe.asp
332721877 /logoframe.asp
332721877 /ovriga.asp
332721877 /produkt_detaljer.asp
Alltså.. Det stämmer inte riktigt.. ;)
Vill ha ut:
Sida Antal gånger den varit förstasida
/default.asp 32
/produkt.asp 45
Hoppas ni hänger med!Sv: SQL fråga..
SELECT PATH_INFO, COUNT(SessionID)
FROM Statistik
WHERE ShopID = 1
AND InDatum BETWEEN '2002-12-23' AND '2002-12-23'
Då får du alla loggningar, sen gäller det bara att begränsa den till de rader som visar startsidan. Du skrev att det är raden efter de med Message = SessionStart, men jag förstår inte riktigt hur det går ihop.Sv: SQL fråga..
Sv: SQL fråga..
SELECT x.PATH_INFO, COUNT(x.SessionID)
FROM Statistik x
INNER JOIN Statistik y
ON x.SessionID = y.SessionID
WHERE x.ShopID = 1
AND y.ShopID = 1
AND x.InDatum BETWEEN '2002-12-23' AND '2002-12-23'
AND y.Message = 'SessionStart'
AND x.Id = (
SELECT MIN(Id)
FROM Statistik
WHERE Id > y.Id
AND SessionID = y.SessionID
AND ShopID = 1
AND InDatum BETWEEN '2002-12-23' AND '2002-12-23')
Hmm, lite osäker på det där, men jag hinner tyvärr inte testa nu. Se om det hjälper dig.Sv: SQL fråga..
Sv: SQL fråga..
SELECT DISTINCT x.PATH_INFO, count(x.SessionID) as antal
FROM Statistik x
INNER JOIN Statistik y
ON x.SessionID = y.SessionID
WHERE x.ShopID = 1
AND y.ShopID = 1
AND x.InDatum BETWEEN '2002-12-23' AND '2002-12-23'
AND y.Message = 'Session Start'
AND x.Id = (
SELECT MIN(Id)
FROM Statistik
WHERE Id > y.Id
AND SessionID = y.SessionID
AND ShopID = 1
AND InDatum BETWEEN '2002-12-23' AND '2002-12-23')
Group By x.Path_Info