Avatar billede thomic Nybegynder
25. april 2007 - 18:23 Der er 4 kommentarer og
1 løsning

COUNT alle forekomster i hele tabellen pånær 2 fields

Hej.

Jeg har en sql-table med flg. info:

id    num1    num2
123451    4    3
123452    2    2 
123453    4    6 
123454    2    4 
123455    4    4 
 

Er det muligt, at få den til at tælle samtlige ens forekomster i både num1 og num2 og på tværs af hinanden - men ikke id.

Den skal altså i sidste ende printe flg. ud:

Tallet 4 går igen 5 gange
Tallet 2 går igen 3 gange
Tallet 6 går igen 1 gange
Tallet 3 går igen 1 gange

Den skal altså counte i num1 og num2 - men ikke id - jeg ville godt selv kunne det, hvis det bare var num1, den skulle tælle, men ved ikke hvordan jeg får den til at tælle i begge to på en gang.

Håber jeg har placeret mit spg. korrekt - og ser ellers frem til jeres svar.
Avatar billede arne_v Ekspert
26. april 2007 - 04:20 #1
SELECT SUM(IF(num1=4,1,0)+IF(num2=4,1,0)) FROM tabel

vil tælle 4'erne i num1 og num2
Avatar billede thomic Nybegynder
26. april 2007 - 10:07 #2
Tak for dit svar, dog er jeg ikke helt sikker på, om jeg kan bruge det i min situation :-)

Hvad så, hvis jeg ikke direkte ved, hvilke tal der skal tælles, da der er over 30 forskellige tal i num1 og num2?

Og hvad gør komma 1 komma 0 bagved 4-tallet?

Og gør SUM ikke bare det, at den ligger tallene sammen istedet for at tælle hvor mange gange dette tal forekommer? Så det svar, jeg ville ende med, ville være tallet 4 går igen 12 gange
Avatar billede sostack Nybegynder
26. april 2007 - 15:52 #3
Prøv med:
$max = 12; //sætter det højeste tal der søges på = 0 til 11
$qry_count = "SELECT * FROM `taltabel`";
$result = mysql_query($qry_count);
WHILE($raekke = mysql_fetch_assoc($result))
{
    FOR($i = 0; $i < $max; $i++)
    {
        IF($i == $raekke['num1'] &&    $i == $raekke['num2'])
        {
            $return[$i] += 2;
        } elseif($i == $raekke['num1'] || $i == $raekke['num2'])
        {
            $return[$i]++;
        }
    }
}
ksort($return);
//print_r($return);
FOREACH($return AS $tal => $antal)
{
    echo "Tallet $tal går igen $antal gange<br />";
}

//sostack
Avatar billede thomic Nybegynder
26. april 2007 - 17:50 #4
SostacK. Det ser desværre ikke ud til at virke.
Jeg får flg. print:

Tallet 0 går igen 1 gange

Hvilket desværre ikke er rigtigt, da der ikke er et tal ved navn 0 deri, og der derudover er en del andre tal.
Avatar billede sostack Nybegynder
30. april 2007 - 14:21 #5
min tabel indeholder flg.:
id    num1            num2 
1     4         1
2     4         0
3    3        2
4     4         3
5     7         3
6     11         4
7     8         9
8     4        7
9    9            3
10    10        4

og giver følgende resultat:
http://procedure.esg.dk/cont.php

//sostack
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