COUNT als getal
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
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?
EDIT even gekeken maar blijkbaar is count geen gereserveerd woord.
Excuses..
Gewijzigd op 12/02/2015 10:29:54 door Bart V B
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'
reserved word voor kolomnamen (en wordt hier zelfs als uitzondering genoemd), maar fraai is inderdaad anders.
De dubbele COUNT(*) kan eruit:
COUNT is geen 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.
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.
Heb hem door nu.
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.