/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
group by i mysql
Fra : René Manggaard


Dato : 16-10-01 21:08

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?

På forhånd tak!

René



 
 
Kristian Damm Jensen (17-10-2001)
Kommentar
Fra : Kristian Damm Jensen


Dato : 17-10-01 09:10

"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.


René Manggaard (17-10-2001)
Kommentar
Fra : René Manggaard


Dato : 17-10-01 10:15

>
> 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;
>

Dette gjorde det ønskede, mange tak!

René



Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste