COUNT als getal
Hoi Allemaal!
Gebruik de volgende code om een COUNT te doen op rij2
Nu wil ik dat er achter elke rij komt te staan hoeveel duplicate records als een getal. Wil hiervoor GEEN extra rij maken in de database. Hoe zou ik dit kunnen doen?
Gebruik de volgende code om een COUNT te doen op rij2
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$query = "SELECT rij1, rij2, rij3, COUNT(*) as count
FROM tabel
GROUP BY rij2
HAVING COUNT(*) > 1";
$result = mysql_query($query) or die ("Fout in query: $query. ".mysql_error());
while ($rows = mysql_fetch_array($result))
{ $col++;
echo " <tr class='gradeA'>
<td><span class='center'>
<input type='checkbox' />
</span></td>";
echo "<td>"; echo $rows['rij1']; echo "</td>"; echo "<td>"; echo $rows['rij2']; echo "</td>"; echo "<td>"; echo $rows['rij3']; echo "</td>";
mysql_free_result($result);
?>
$query = "SELECT rij1, rij2, rij3, COUNT(*) as count
FROM tabel
GROUP BY rij2
HAVING COUNT(*) > 1";
$result = mysql_query($query) or die ("Fout in query: $query. ".mysql_error());
while ($rows = mysql_fetch_array($result))
{ $col++;
echo " <tr class='gradeA'>
<td><span class='center'>
<input type='checkbox' />
</span></td>";
echo "<td>"; echo $rows['rij1']; echo "</td>"; echo "<td>"; echo $rows['rij2']; echo "</td>"; echo "<td>"; echo $rows['rij3']; echo "</td>";
mysql_free_result($result);
?>
Nu wil ik dat er achter elke rij komt te staan hoeveel duplicate records als een getal. Wil hiervoor GEEN extra rij maken in de database. Hoe zou ik dit kunnen doen?
Gewijzigd op 12/02/2015 10:09:35 door Johan Vels
Normaal selecteren we kolommen en geen rijen. Niet dat het programmatisch iets uitmaakt maar het kan verwarring scheppen.
Volgende vraag: Wanneer is een record een duplicate volgens jou?
Code (php)
1
2
3
4
2
3
4
SELECT col1, col2, col3, COUNT(*) as count
FROM tabel
GROUP BY col2
HAVING COUNT(*) > 1
FROM tabel
GROUP BY col2
HAVING COUNT(*) > 1
Volgende vraag: Wanneer is een record een duplicate volgens jou?
Volgens mij is count een gereserveerd woord.
EDIT even gekeken maar blijkbaar is count geen gereserveerd woord.
Excuses..
EDIT even gekeken maar blijkbaar is count geen gereserveerd woord.
Excuses..
Gewijzigd op 12/02/2015 10:29:54 door Bart V B
@Frank
Als in col2 dezelfde waarde meer dan 1 keer voorkomt wordt deze getoond. Dit werkt, maar nu wil dat er achter col2 komt te staan hoeveel deze dan voorkomt als getal dus bv. '2' of '3'
Als in col2 dezelfde waarde meer dan 1 keer voorkomt wordt deze getoond. Dit werkt, maar nu wil dat er achter col2 komt te staan hoeveel deze dan voorkomt als getal dus bv. '2' of '3'
COUNT is geen reserved word voor kolomnamen (en wordt hier zelfs als uitzondering genoemd), maar fraai is inderdaad anders.
De dubbele COUNT(*) kan eruit:
De dubbele COUNT(*) kan eruit:
Ward van der Put op 12/02/2015 10:41:33:
COUNT is geen reserved word voor kolomnamen (en wordt hier zelfs als uitzondering genoemd), maar fraai is inderdaad anders.
De dubbele COUNT(*) kan eruit:
De dubbele COUNT(*) kan eruit:
Ward heeft je het antwoord gegeven lijkt mij?
Let wel even op: col1 en col3 geven waarschijnlijk een random waarde en zou je er dan beter uit kunnen halen.
Dank voor de reacties zal het aanpassen naar as total.
Maar volgens mij wordt de vraag niet helemaal goed begrepen
Ik wil dat er achter elk duplicate record dat nu getoond wordt hoe vaak col2 waarde dubbel voorkomt bij betreffend records.
Maar volgens mij wordt de vraag niet helemaal goed begrepen
Ik wil dat er achter elk duplicate record dat nu getoond wordt hoe vaak col2 waarde dubbel voorkomt bij betreffend records.
Met GROUP BY col2 groepeer je al op gelijke waarden in col2. De telling COUNT(*) as total meldt je dan hoeveel rijen dat zijn. Is total bijvoorbeeld 3, dan zijn er dus 3 rijen met dezelfde waarde in col2.
Super bedankt voor de uitleg Ward!
Heb hem door nu.
Heb hem door nu.
En zoals Frank aangeeft hebben de waarden van col1 en col3 na afloop een random waarde, omdat er verder geen verband is met de groepering op col2. (Laat deze dus weg!)
Als je van col1 en col3 ook wilt weten of hier waarden niet uniek zijn, dan zul je hier afzonderlijke queries voor moeten schrijven denk ik.
Als je van col1 en col3 ook wilt weten of hier waarden niet uniek zijn, dan zul je hier afzonderlijke queries voor moeten schrijven denk ik.




