Avatar billede kernelx Juniormester
05. maj 2003 - 13:50 Der er 15 kommentarer og
1 løsning

GROUP BY

Hi,

er dere nogen som ved, hvorfor man bruger GROUP BY i MySQL?
Jeg ved godt hvordan man bruger den, men jeg kan ikke se en logik i - hvorfor man har lavet den.

Er der nogen, som kan forklare mig - hvad der er logikken i
GROUP BY???
Avatar billede dk_akj Nybegynder
05. maj 2003 - 13:56 #1
"gruppér efter", bruges bla. hvis du bruger sum count eller andre funktioner.

//akj
Avatar billede fri-hash Nybegynder
05. maj 2003 - 13:58 #2
et teorestisk eksempel er ansatte i et firma
tabellen kunne se ud som følger:
medarbejderNr | navn | afdeling | stilling

hvis du laver select * group by afdeling, får du resultatet grupperet afdelingsvis, laver du group by stilling får du resultatet grupperet efter stilling
Avatar billede kernelx Juniormester
05. maj 2003 - 14:03 #3
Laver GROUP BY så en alphabetisk rækkefølge?
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 14:05 #4
nej, det gør ORDER BY
Avatar billede dk_akj Nybegynder
05. maj 2003 - 17:23 #5
Kan du give et eks. på en sql hvor du bruger group by ??

//akj
Avatar billede fri-hash Nybegynder
05. maj 2003 - 19:00 #6
hvis du f.eks har ovennævnte tabel og vil præsentere de afdelinger firmaet består af, samt de medarbejdere der er tilknyttet hver afdeling, så vil
SELECT * FROM medarbejdere GROUP BY afdeling;
give dig alle medarbejderne i tabellen, grupperet efter afdeling, dvs. f.eks først alle fra salgsafdelingen, så alle fra produktionsafd osv.

mens
SELECT * FROM medarbejdere GROUP BY stilling;
ville give dig alle medarbejdere, grupperet efter stilling, f.eks først alle arbejdsdrenge, så alle værkførere, osv.
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 19:05 #7
Har du selv prøvet det du skriver, fri-hash?
Avatar billede fri-hash Nybegynder
05. maj 2003 - 21:12 #8
ikke lige for nylig, men hvis jeg husker helt galt så undskylder jeg for vildledningen
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 21:34 #9
GROUP BY giver sjældent mening uden en form for beregning på grupperne.

fx. SELECT count(*) as antal GROUP BY stilling

Man får bestemt ikke "alle medarbejdere" tilbage. ;)
Avatar billede fri-hash Nybegynder
05. maj 2003 - 21:40 #10
hvor du så vil få antallet af medarbejdere i hver stilling, eller?
skal vist snart til at rode med noget SQL igen (når mit nye webhotel virker ;-)
Avatar billede fri-hash Nybegynder
05. maj 2003 - 21:41 #11
alså resultatet af SELECT count(*) as antal GROUP BY stilling
vil blive
stilling | antal

?
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 21:46 #12
Nej, det vil blive

Antal
7
9
13

og det er lidt uinteressant. Der skal jo rent faktisk stå

SELECT stilling,count(*) as antal GROUP BY stilling

så det bli'r

Stilling Antal
Undervognsvasker 7
Flagrejser 9
offentligtansatekspertenhjælper 13
Avatar billede fri-hash Nybegynder
05. maj 2003 - 21:57 #13
aarh, got it

kernelx > undskyld vildledningen, håber du har fået lige så meget ud af eriks seneste kommentar som jeg...
Avatar billede fri-hash Nybegynder
06. maj 2003 - 16:06 #14
hoov, de points har jeg absolut ikke fortjent

erik, hent dem her: http://www.eksperten.dk/spm/349233
Avatar billede erikjacobsen Ekspert
06. maj 2003 - 18:51 #15
Tak, jeg skal ikke have points.
Avatar billede fri-hash Nybegynder
07. maj 2003 - 09:02 #16
kernelx > så kan du da henvende dig i ovennævnte spørgsmål og få dem retur...
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