"René Manggaard" wrote:
>
> Hejsa
>
> Jeg har en tabel a med et datoformat: yyyy-mm-dd hh:mm (egentlig en
> tekststreng, men mysql kan åbentbart godt tolke den som en datotidsting, lad
> os kalde kolonnen for tid.
> Jeg vil gerne have antal rækker fordelt på uger, så jeg prøvede med:
>
> SELECT WEEK(tid), count(*) FROM a GROUP BY WEEK(tid);
>
> Dette giver en error 1064, syntaks fejl.
>
> Jeg tror det er WEEK-funktionen på tid i group by - klausulen (correct me if
> I'm wrong), da det går igennem uden, men det giver ikke det ønskede
> resultat.
> Jeg kunne forestille mig, at det med sub-selects kunne se således ud (ikke
> testet):
>
> SELECT weeknr, count(*)
> FROM (SELECT WEEK(tid) as weeknr, count(*) as antal FROM a GROUP BY tid)
> GROUP BY weeknr;
>
> Ikke kønt (det må kunne laves simplere), men jeg tror, det giver det jeg vil
> have. Er det muligt at lave et 'pænt' query, som gør det samme?
Uden at være haj i mySQL kan jeg komme med et par forslag, der i alt
fald er standard-SQL (bortset fra week-funktionen):
SELECT WEEK(tid) as uge, count(*) FROM a GROUP BY uge;
SELECT WEEK(tid), count(*) FROM a GROUP BY 1;
--
Kristian Damm Jensen | Feed the hungry. Go to
kristian-damm.jensen@cgey.dk |
http://www.thehungersite.com
Two wrongs doesn't make a right, but three lefts does.