#keer voorkomen in lijst berekenen

Status
Niet open voor verdere reacties.

djemmers

Gebruiker
Lid geworden
7 jul 2006
Berichten
129
hey,

ik heb volgende query:

SELECT ID,naam,achternaam
FROM tblMedewerker where werkjaar='7'

nu komt ID meerdere keren voor en ik wil eigenlijk weten hoeveel keer elke id voorkomt
dus zo een resultaat:
id,naam,achternaam,count

waarvan count dan het aantal keer is dat dat ID voorkomt in werkjaar 7

als je bv het volgende resultaat van de (oorspronkelijke) query hebt:

2 jan, debaker
5 riet deslager
2 jan debacker
3 jan debacker
5 riet deslager
2 jan debacker

zou met de nieuwe (te maken) query het volgende moeten geven:
2 jan debacker 3
5 riet deslager 2
3 jan debacker 1
waarbij de laatste kolom de hoeveelheid is dat die ID (eerste kolom) voorkomt

als er meer info nodig is hoor ik het wel :-)
 
Laatst bewerkt:
zoiets?
PHP:
SELECT ID,naam,achternaam, count(*) count
FROM tblMedewerker where werkjaar='7'
GROUP BY ID,naam,achternaam
 
bedankt voor je reactie
maar ik krijg een syntaxfout bij count(*) count

enig idee?
 
Laatst bewerkt:
Misschien dat het woord "count" niet als kolomnaam gebruikt mag worden. Probeer het eens op deze manier:

PHP:
SELECT ID,naam,achternaam, count(*) aantal
FROM tblMedewerker where werkjaar='7' 
GROUP BY ID,naam,achternaam
 
nu geen syntax error meer,

maar niet het juiste resultaat, ik krijg dit:

2 jan, debaker 1
5 riet deslager 1
2 jan debacker 1
3 jan debacker 1
5 riet deslager 1
2 jan debacker 1

en niet

2 jan debacker 3
5 riet deslager 2
3 jan debacker 1
 
Ik durf niet te zeggen waar dat aan ligt. Wanneer ik een tabel maak, de gegevens erin zet en de query draai krijg ik dit resultaat:
PHP:
mysql> SELECT ID,naam,achternaam, count(*) aantal
    -> FROM tblMedewerker
    -> GROUP BY ID,naam,achternaam;
+------+------+------------+--------+
| ID   | naam | achternaam | aantal |
+------+------+------------+--------+
|    2 | jan  | debacker   |      3 |
|    3 | jan  | debacker   |      1 |
|    5 | riet | deslager   |      2 |
+------+------+------------+--------+
3 rows in set (0.00 sec)

Misschien kun je inderdaad het beste het advies van ReneDirks in het andere draadje opvolgen en contact opnemen met je provider. Ik weet niet of het daar aan ligt maar versie 3 van MySQL is wel een beetje ouderwets. Een nieuwere versie maakt het ook makkelijker voor anderen om je aan een werkende query te helpen :o.
 
dat heb ik gedaan,
En dit was hun reactie:

we zijn sql aan het upgraden maar dat kan nog even duren
(lees: dit gaat nog lang duren dus ik ga er niet veel mee zijn...)
 
Volgens mij moet je dan gaan groupen (overigens: klopt het dat ID 2 zowel debacker als debaker kan heten?)

Probeer eens:

Select distinct ID,naam,achternaam, Count(Distinct ID) as Count
FROM tblMedewerker where werkjaar='7'

Als dit niet werkt:

SELECT ID,naam,achternaam Count (ID)
FROM tblMedewerker
Group by ID
Having werkjaar='7'

Succes
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan