Avatar billede Slettet bruger
08. april 2005 - 12:41 Der er 3 kommentarer og
1 løsning

GROUP BY og SUM

Hejsa,

Et lille spørgsmål til alle de mange MySql eksperter her på eksperten.dk :-)

Jeg har en simpel tabel, der indeholder et Id (autonummereringsnummer) og et datofelt kaldet dato.

Jeg vil så gerne trække alle datoer ud i grupper - altså grupperet ud for datoen, samt udskrive antallet af datoer for hver gruppe.

Jeg bruger følgende select-sætning til formålet:

SELECT Dato, SUM(DAY(Dato)) AS AntalDag FROM DatoTest GROUP BY DAY(Dato) ORDER BY Dato DESC

Virker fint, men problemet er at summen tælles op hver gang, så antallet for den følgende gruppe af datoer hele tiden bliver tilsvarende højere - altså det aktuelle antal + antallet af de foregående grupper.

Er der en metode, hvormed man kan summere udelukkende på den enkelte gruppe af datoer?
Avatar billede barklund Nybegynder
08. april 2005 - 12:49 #1
Antallet tælles med COUNT, SUM() brugeres til at summere elementerne. Altså lægger du dagene sammen - hvilket er ret fjollet:

SELECT Dato, COUNT(1) AS AntalDag FROM DatoTest GROUP BY DAY(Dato) ORDER BY Dato DESC

Ville jeg nok rekommandere at skrive :)
Avatar billede Slettet bruger
08. april 2005 - 12:52 #2
Takker for hurtigt svar :-)
Jeg ved faktisk ikke hvorfor jeg ikke tænkte på den funktion, bruger den jo selv når jeg tæller alle felter fra en query, men er ret ny i mere "komplekse" forespørgsler.

Læg lige et svar, så får du dine point.
God weekend!
Avatar billede barklund Nybegynder
08. april 2005 - 12:54 #3
Helt i orden ;)
Avatar billede barklund Nybegynder
08. april 2005 - 13:21 #4
Tark for points ;)
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