Carzten Christensen wrote:
> Jeg er igang med et projekt, hvor det vil være nyttigt at kunne se
> antal registreringer fordelt på ugedag.
>
> Hver registrering har et timestamp, og jeg har forstået på
>
http://dev.mysql.com/doc/mysql/en/Date_and_time_functions.html
> at jeg variablen "%W" kan hive ugedagen ud af et timestamp.
%W er ikke en variabel, men en option til date_format. Det er i øvrigt
ikke den du skal bruge, den giver navnet på ugedagen, hvilket giver en
spøjs sortering. Brug i stedet %w, der giver et tal mellem 0 og 6.
> Det jeg er ude efter er en query i denne stil:
> SELECT * from hotline_sag group by (UGEDAG)
>
> Mit forsøg ser sådan ud, men virker ikke.
> SELECT * from hotline_sag group by (date('tidspunkt',%W))
>
> Så vidt jeg kan gennemskue, kan det lade sig gøre, men jeg er
stærkt i
> tvivl om syntaxen for GROUP BY klausulen.
> Jeg er klar over at en måde at komme udenom dette var at registrere
> ugedagen i databasen, men jeg har en ambition om senere at ville
> forespørge på tidsintervaller (f.eks kl. 8-10, 10-12, 12-15)
>
> Kan du svare på hvordan jeg sorterer mit resultat på ugedag ?
Group by er i det fleste tilfælde kun meningsfuldt, hvis du ønsker at
tælle sammen eller lignende. Brug count(*) i dette tilfælde.
Du får dermed en select i stil med
select date_format('tidspunk', %w) as ugedagnr
, date_format('tidspunk', %W) as ugedag
, count(*) as antal
from T
group by ugedagnr, ugedag
order by ugedagnr
VH
Kristian