Avatar billede ducks Nybegynder
08. august 2006 - 14:52 Der er 13 kommentarer og
2 løsninger

Problem med GROUP

"SELECT firstname,lastname,status,reply,usergroup FROM guests GROUP BY usergroup"

Hvad er der galt med den, jeg får en fejl med noget agreggate
Avatar billede arne_v Ekspert
08. august 2006 - 14:53 #1
GROUP BY bruges i forbindelse med MIN, MAX, SUM, COUNT og AVG funktionerne

mener du:

SELECT firstname,lastname,status,reply,usergroup FROM guests ORDER BY usergroup

?
Avatar billede danish1977 Nybegynder
08. august 2006 - 14:54 #2
SELECT firstname,lastname,status,reply,usergroup FROM guests GROUP BY usergroup

Kan:
SELECT firstname,lastname,status,reply,usergroup FROM guests ORDER BY usergroup

ikke klare dit problem?
Avatar billede ducks Nybegynder
08. august 2006 - 15:01 #3
hvis jeg undlader firstname,lastname,status,reply, virker det fint nok.


Jeg vil gerne have en liste over fe forskellige usergroup der er, men de skal ikke komme 2 gange. Der må også gerne blive talt, hvor mange der har samme usergroup.
Avatar billede barklund Nybegynder
08. august 2006 - 15:07 #4
Så skal du jo ikke bede om folks for- og efternavne, når du skal tælle dem.

For eksempel:

"SELECT usergroup, count(1) AS count FROM guests GROUP BY usergroup"
Avatar billede arne_v Ekspert
08. august 2006 - 15:09 #5
"SELECT usergroup,COUNT(*) FROM guests GROUP BY usergroup"

?
Avatar billede ducks Nybegynder
08. august 2006 - 15:13 #6
hvad så hvis jeg også vil have andre kolonner ud end bare usergroup?
Avatar billede nva Praktikant
08. august 2006 - 15:36 #7
Du skal gruppere på ALLE du selecter - altså også på firstname, lastname osv. Sådan er det i hvert fald i den form for sql jeg bruger - men det er på en stor mainframe med DB2 så det er måske ikke det samme. Det er normalt kun når man IKKE summere eller udfører andet på feltet, at der ikke behøver være en gruppering.
Avatar billede arne_v Ekspert
08. august 2006 - 15:52 #8
MySQL tillader faktisk at man ikke group by'er paa alt.

Men det giver kun mening hvis de felter kun kan have en vaerdi givet noget
andet som man group by'er paa.
Avatar billede barklund Nybegynder
08. august 2006 - 16:02 #9
Altså, hvis du skal have tælle, hvor mange der er i usergroup 1, hvordan vil du så samtidig have navnene på dem? Altså, du får en række med usergroup = 1, antal = 5 - så får du jo kun én række. Du kan ikke både gruppere og få alle rækkerne inden for gruppen - hvis du forstår?
Avatar billede ducks Nybegynder
08. august 2006 - 18:26 #10
Ja jeg ser at jeg jo fuldstændig har overset noget mht det med grupperinger, det er jo klart at man ikke kan få meget andet ud end grupperne når man grupperer det :S
Avatar billede barklund Nybegynder
09. august 2006 - 09:20 #11
Præcis. Hvis nu vi prøver at vende helt tilbage til starten - hvad er det så, du gerne vil have ud og hvilke data, skal du have vist? Så finder vi en query og en metode, der virker :)
Avatar billede ducks Nybegynder
14. august 2006 - 14:52 #12
Jeg opgav min egen umulige plan og fandt en anden løsning som også var realistisk ;)

Bare smid svar hvis i vil have points
Avatar billede barklund Nybegynder
14. august 2006 - 14:56 #13
Deal :)
Avatar billede arne_v Ekspert
14. august 2006 - 15:12 #14
.
Avatar billede barklund Nybegynder
25. august 2006 - 11:09 #15
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

IT-JOB