Avatar billede stringbuffer Nybegynder
05. juni 2001 - 11:50 Der er 3 kommentarer og
1 løsning

Flere counts i én SQL-sætning

Jeg har en tabel med brugere, hvor der er et felt til køn (0 eller 1). Jeg vil gerne lave en forespørgsel som udtrækker antal fyre (sex=1), antal piger (sex=0) og det samlede antal (det sidste får jeg bare ved at lægge fyre og piger sammen).
Kan det lade sig gøre at udtrække det med én enkel SQL-sætning? Og hvis ikke, hvorfor?
Avatar billede mwittrock Nybegynder
05. juni 2001 - 11:55 #1
Du burde kunne sige:

SELECT SUM(CASE WHEN Sex = 1 Then 1 ELSE 0 END) AS M, SUM(CASE WHEN Sex = 1 Then 0 ELSE 1 END) AS K FROM din_tabel

OBS: Ikke testet på MySQL
Avatar billede stringbuffer Nybegynder
05. juni 2001 - 11:57 #2
Heh... fandt ud af én måde:

SELECT COUNT(SEX) AS CNT FROM USERS GROUP BY SEX

Den returnerer 2 rækker med CNT, den første række med piger (sex=0) og den næste med fyre (sex=1).

Avatar billede stringbuffer Nybegynder
05. juni 2001 - 11:59 #3
Tak mwittrock, den virker perfekt :-)
Avatar billede alvion Nybegynder
05. juni 2001 - 12:02 #4
Du bør nok skrive den således:

SELECT SEX, COUNT(SEX) AS CNT FROM USERS GROUP BY SEX ORDER BY SEX

Du er ikke garanteret, at resultaterne returneres i samme rækkefølge, med mindre du selv specificerer \"order by\". Samtidig får du med denne metode også feltet SEX tilbage, så du kan helt præcist kan se hvilken count, der hører til hvilket SEX
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