Avatar billede nemlig Professor
05. juni 2010 - 11:29 Der er 3 kommentarer og
1 løsning

avanceret SELECT hvor der tælles

Hejsa.
Jeg har en tabel med 2 felter 'spoergsmaal' og 'svar', begge af typen int(11)
'spoergsmaal' kan have værdier mellem 1 og 15, mens 'svar' kan have værdier mellem 1 og 6.
Tabellen kan se sådan her ud:
|id|sp|sv|
|1|1|1|
|2|1|6|
|3|8|1|
|4|1|1|

Til statistisk brug har jeg brug et udtræk, hvor jeg tæller, hvor mange gange:
sp=1 AND sv=1
sp=1 AND sv=2
sp=1 AND sv=3
osv.
sp=2 AND sv=1
sp=2 AND sv=2
osv.

Findes der en smart metode til dette, eller skal jeg i gang med at lave en hullens masse SELECT
Avatar billede erikjacobsen Ekspert
05. juni 2010 - 13:18 #1
Måske, hvis jeg forstår korrekt:

  SELECT COUNT(*),sp,sv FROM dintabel GROUP BY sp,sv
Avatar billede nemlig Professor
05. juni 2010 - 15:04 #2
OK, det ser interessant ud.

Men hvordan får jeg så vist fx. antal svar 1 på spørgsmål 1 (det der svarer til "... WHERE sp=1 AND sv=1"

Jeg plejer at lave min Select sådan her:

$sql = "SELECT COUNT(*),sp,sv FROM dintabel GROUP BY sp,sv ";
    $res = database($sql);
    $row = mysql_fetch_array($res);
Avatar billede erikjacobsen Ekspert
05. juni 2010 - 18:11 #3
Sådan ca.:

    $sql = "SELECT COUNT(*) as c,sp,sv FROM dintabel GROUP BY sp,sv ";
    $res = database($sql);
    while( $row = mysql_fetch_array($res) ) {
      print $row['c]." ".$row['sp']." ".$row['sv'];
    }
Avatar billede nemlig Professor
05. juni 2010 - 18:38 #4
Sejt - det var lige præcis løsningen.
Tusind tak Erik - endnu engang har du glædet mig med en god løsning.
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