Avatar billede Slettet bruger
09. oktober 2002 - 17:34 Der er 6 kommentarer og
2 løsninger

Hente de sidste 7 dages besøgstal

Hej!

Jeg har db med felterne

"id" og "tidspunkt"

tidspunkt er af type Datetime.

Hvordan henter jeg en liste over de sidste 7 dage, og udskriver antal sidevisninger i hver af de 7 dage?
Avatar billede Slettet bruger
09. oktober 2002 - 17:42 #1
Det må være noget i stil med

SELECT *,COUNT(id) AS antal FROM siterater_statistik GROUP BY "her skal der tages hensyn til hvilken dag" ORDER BY antal DESC LIMIT 7
Avatar billede lasse_buck Nybegynder
09. oktober 2002 - 18:01 #2
Ikke testet - prøv selv:
SELECT id, EXTRACT(YEAR_MONTH_DAY, datofelt) AS dato, COUNT(id) AS antal FROM siterater_statistik GROUP BY ID, dato ORDER BY antal DESC LIMIT 7

dato delen kan også udtrækkes med:
DATE_FORMAT(datofelt, "%Y%m%d") as dato
Avatar billede oesten Nybegynder
09. oktober 2002 - 18:02 #3
Skal der ikke være en WHERE tidspunkt > (datoen for 7 dage siden)?
Avatar billede lasse_buck Nybegynder
09. oktober 2002 - 18:06 #4
Hovsa!

SELECT EXTRACT(YEAR_MONTH_DAY, datofelt) AS dato, COUNT(*) AS antal FROM siterater_statistik GROUP BY dato ORDER BY dato DESC LIMIT 7

LIMIT 7 viser så kun de sidste 7 dage.
Avatar billede lasse_buck Nybegynder
09. oktober 2002 - 18:19 #5
Sidste syv dage incl. idag - sorteret efter antal:
SELECT EXTRACT(YEAR_MONTH_DAY, datofelt) AS dato, COUNT(*) AS antal FROM siterater_statistik
  WHERE TO_DAYS(NOW()) - TO_DAYS(datofelt) < 7
GROUP BY dato
ORDER BY antal DESC
Avatar billede Slettet bruger
09. oktober 2002 - 18:42 #6
SELECT EXTRACT(YEAR_MONTH_DAY, tidspunkt) AS dato, COUNT(*) AS antal FROM siterater_statistik WHERE TO_DAYS(NOW()) - TO_DAYS(tidspunkt) < 7 GROUP BY dato ORDER BY antal DESC

Virker ikke, det gør de tidligere eksempler heller ikke.

Den sidste giver fejlen

You have an error in your SQL syntax near 'YEAR_MONTH_DAY, tidspunkt) AS dato, COUNT(*) AS antal FROM siterater_statistik W' at line 1
Avatar billede Slettet bruger
09. oktober 2002 - 20:22 #7
Jeg fik det til at virke med det her:


SELECT UNIX_TIMESTAMP(tidspunkt) AS tidspunkt, EXTRACT(DAY FROM tidspunkt) as tid2, COUNT(id) AS antal FROM siterater_statistik WHERE TO_DAYS(NOW()) - TO_DAYS(tidspunkt) < 8 GROUP BY tid2 ORDER BY tidspunkt DESC LIMIT 7

Tak for skubbet i den rigtige retning :)
Avatar billede jesperhaun Nybegynder
09. oktober 2002 - 20:24 #8
SELECT id, count(tidspunkt)
FROM siterater_statistik
WHERE TO_DAYS(NOW()) - TO_DAYS(tidspunkt) <= 7
GROUP BY id
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester