Avatar billede pluth Nybegynder
18. marts 2012 - 13:08 Der er 6 kommentarer og
1 løsning

flere counts som benytter samme group by

Hej,

Jeg har en tabel, hvor jeg ønsker at "counte" på forskellige bruger typer.

Altså

select name, count(*) from tabel where brugertype=1, select name, count(*) from tabel where brugertype=2
group by name

Nogle navne er både type 1 & 2.

Nogen som kan hjælpe med hvordan det løses ?
Avatar billede Syska Mester
18. marts 2012 - 13:31 #1
Kan du ikke også bare smide en "group by" på "brugertype" ?

( Kan ske jeg lidt har misforstået hvad du forventer at få ud)
Avatar billede soes Nybegynder
18. marts 2012 - 13:32 #2
SELECT [name], count(*) As Cnt FROM table GROUP BY brugertype, [name]

Kunne være et bud
Avatar billede pluth Nybegynder
18. marts 2012 - 13:40 #3
Det jeg ønsker er:

Navn-BrugerType1-Brugertype2
Hans-1-0
Ole-4-1
Avatar billede Syska Mester
18. marts 2012 - 14:03 #4
Bare lige for at forstå din struktur ...

Så viser overstående at du har:
1 med navnet "Hans" med type 1.
0 med navnet "Hans" med type 2.

4 med navnet "Ole" med type 1.
1 med navnet "Ole" med type 2.
Avatar billede Syska Mester
18. marts 2012 - 14:42 #5
For mig virker det lidt som noget du skal ordne i din applikation og ikke i din database.
18. marts 2012 - 17:29 #6
Hvis #4 udtrykker den rigtige forståelse af problemet og af dataerne i tabellen, så er her en query der virkede i den test tabel pluth jeg lavede og som jeg viser nedenfor.

SELECT t.navn, (SELECT COUNT(*) FROM pluth WHERE brugertype = 1 AND navn = t.navn) type1, (SELECT COUNT(*) FROM pluth WHERE brugertype = 2 AND navn = t.navn) type FROM pluth t GROUP BY t.navn;

Resultatet var:

navn type1 type2
Hans    4        1
Jens    2        0
Ole      1        2

Her er test tabellen med data:

INSERT INTO pluth VALUES(1, 'Hans', 1);
INSERT INTO pluth VALUES(2, 'Hans', 1);
INSERT INTO pluth VALUES(3, 'Hans', 1);
INSERT INTO pluth VALUES(4, 'Hans', 1);
INSERT INTO pluth VALUES(5, 'Hans', 2);
INSERT INTO pluth VALUES(6, 'Ole', 1);
INSERT INTO pluth VALUES(7, 'Ole', 2);
INSERT INTO pluth VALUES(8, 'Ole', 2);
INSERT INTO pluth VALUES(9, 'Jens', 1);
INSERT INTO pluth VALUES(10, 'Jens', 1);
Avatar billede pluth Nybegynder
18. marts 2012 - 19:57 #7
Det var præcis hvad jeg søgte Christian :)

Mange tak for din hjælp
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