Avatar billede boxerfjaes Nybegynder
07. maj 2009 - 14:15 Der er 3 kommentarer og
1 løsning

tæl dubletter

Hej.
Jeg har en tabel i MySQL5.1 indholdende id, team_id, og number.
Hvor jeg vedhjælp af php5 ønsker at tælle antallet af dubletter.
Det kan se sådan ud:

id  team_id  number
102  10002    8
103  10002    5
104  10002    8
105  10003    8
osv..

Jeg vil gerne kunne tælle antallet af dubletter (af number) for et givent team_id. Number kan have værdien 1-9 og antallet af rækker med samme team_id kan variere fra 0-9. id er unik.

Jeg er ret blank på hvordan det skal gøres alt hvad jeg har kunne finde om dubletter handler om at fjerne dem ikke tælle dem.
Håber i kan hjælpe.
Avatar billede michael_stim Ekspert
07. maj 2009 - 14:19 #1
Ikke testet.

SELECT COUNT(*) AS antal, number FROM tabel GROUP BY number;
Avatar billede boxerfjaes Nybegynder
07. maj 2009 - 18:00 #2
Jeg kan ikke få det til at virke.

Med denne kode:

$query = mysql_query("SELECT COUNT(*) AS antal, number FROM tabel GROUP BY number");
echo $resault = mysql_result($query, 'antal');

Får jeg følgende svar:

27

Det burde have været 2, da der i tabellen er 2 1-taller og 2- 7-taller.

id  team_id  number age
125 6        10002  22
126 1        10002  19
124 3        10002  18
123 9        10001  23
121 9        10001  21
122 5        10001  22
120 5        10001  20
119 8        10001  21
118 3        10001  22
116 3        10001  22
117 5        10001  22
115 4        10001  21
141 8        10001  29
140 1        10001  24
139 7        10001  24
138 7        10001  26
137 5        10001  25
136 3        10001  26
135 2        10001  25
134 1        10001  24
133 6        10001  30
114 7        10008  18
113 3        10008  21

Jeg har prøvet at indsætte nogle WHERE-sætninger men uden held.
Jeg glemte også at age skal være større end 23.
Avatar billede boxerfjaes Nybegynder
07. maj 2009 - 18:40 #3
Jeg har løs mit problem på følgende måde:

$query = mysql_query("SELECT COUNT(DISTINCT number) AS distinctnumbers FROM tabel WHERE team_id = '10001' && age > '23'");
$distincts = mysql_result($query, 'distinctnumbers');

$query = mysql_query("SELECT COUNT(*) AS numbers FROM tabel WHERE team_id = '10001' && age > '23'");
$numbers = mysql_result($query, 'numbers');

echo $resault = $numbers-$distincts;
Avatar billede boxerfjaes Nybegynder
19. juli 2009 - 01:08 #4
lukket
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