12. november 2003 - 04:41Der er
13 kommentarer og 1 løsning
GROUP BY og DATE_SUB
Hvorfor fejler den på denne her? SELECT * FROM Log GROUP BY LogSessionID WHERE LogTimestamp>DATE_SUB(NOW(), INTERVAL 5 MINUTE); ORDER BY LogTimestamp DESC
Jeg vil gerne have de sidste 5 minutters logrecords grupperet op på sessionid, så jeg får den nyeste record på hver sessionid.
Måske ligger GROUP BY forkert... Prøv med denne: SELECT * FROM Log WHERE LogTimestamp>DATE_SUB(NOW(), INTERVAL 5 MINUTE); GROUP BY LogSessionID ORDER BY LogTimestamp DESC
og så skal din > vel også vendes om så den bliver en < .. Du tester vel på gamle records og ikke poster der har tider frem i tiden eller hvordan (tænkte bare når du nu har skrevet LOG ..)
er det så ikke bare at skirve MAX(LogTimestamp), detandet, dugerne, vilgave FROM ... Er ikke superekspert til MySQL.. Men tror desværre ikke der er andre løsninger på problemet, hvis ikke du skal til at have en meget længere query.. Så skal du ud at finde MAX-logtimestampet og så bag efter hente recorden ud fra dette.. Men lettere bare at skrive de forskellige, for du ved jo vel alligevel hvilke du skal bruge..
Men som sagt, ikke ekspert, så det kan saktens være der findes en "lige til" løsning..
Kan stadig ikke få det til at virke. :] Her er min fulde sql sætning.
SELECT MAX(l.LogTimestamp),UNIX_TIMESTAMP(l.LogTimestamp) as Tid,c.CustomerFirstname,c.CustomerLastname FROM Log l LEFT JOIN Customer c ON c.CustomerID = l.CustomerID WHERE l.LogTimestamp>DATE_SUB(NOW(), INTERVAL 5 MINUTE) GROUP BY l.LogSessionID ORDER BY l.LogTimestamp DESC
Lang tid siden, men jeg havde et lignende problem. Har nu fundet løsningen og ville bare dele den med andre:
SELECT MAX(l.LogTimestamp),UNIX_TIMESTAMP(l.LogTimestamp) as Tid,c.CustomerFirstname,c.CustomerLastname, l.LogTimestamp FROM Log l LEFT JOIN Customer c ON c.CustomerID = l.CustomerID WHERE DATE_SUB(UNIXTIME(l.LogTimestamp), INTERVAL 5 MINUTE) > DATE_SUB(NOW(), INTERVAL 5 MINUTE) GROUP BY l.LogSessionID ORDER BY l.LogTimestamp DESC
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.