ok der Betreff ist etwas - merkwürdig

Ich habe eine Filmbestandsdatenbank auf basis von ofdbgw.org aufgebaut. Das ganze klappt soweit ganz gut - das Problem ist nur das bei den Schauspielern (vorwiegend bei asiatischen Filmen), viele Rollen von EINER Person abgedeckt sind (oder die Rollen unterschiedlich geschrieben werden). Ich möchte aber in meiner Zählung nur ermittelt haben das diese Person EINMAL in dem Film mitspielt.
Folgende DB "rollen"
personid = die ID aus der OFDB für diese Person
filmid = die Film-ID aus der OFDB
funktion = Darsteller, Regie usw.
name = Real-Name
rollenname = Name der Rolle
Ich hatte schon vor die einfach alles auf unique zu setzen und so doppelte Einträge zu vermeiden - das klappt aber nur bedingt:
Code: Alles auswählen
filmid personid funktion name rollenname
1 10 Darsteller Hans Wurst Rolle1
1 10 Darsteller Hans Wurst Rolle_1
Ich möchte aber in meiner Statistik diesen Fehler beheben
Für Film 1 wird Darsteller 10 jetzt 2x gezählt. Da soll aber nur 1 angezeigt werden. Hab deswegen viele asiatitische Schauspieler ganz oben in meiner Liste obwohl die nur in 3-4 Filmen mitspielen - werden aber 20-30x gezählt

Meine bisherige Lösung:
Code: Alles auswählen
SELECT COUNT( * ) AS anz, personid, name FROM rollen WHERE funktion LIKE 'Darsteller' GROUP BY personid ORDER BY anz DESC, name ASC
Code: Alles auswählen
SELECT distinct personid, COUNT( name ) AS anz, name FROM rollen WHERE funktion LIKE 'Darsteller' and filmid=143138 GROUP BY persidofdb ORDER BY anz DESC
Code: Alles auswählen
personid anz name
6095 2 Ken Lo
18303 1 Tien Niu
Ich muß hier also einen anderen Ansatz versuchen. Mit Join hatte ich das auch versucht - aber irgendwie ging das total in die Hose - das Ergebniss war nämlich das gleiche - der String nur 2x so lang

Wie bekomme ich das den sauber hin? Da ich den String auch für die Pagination benötige, sollte die Lösung via mySQL erfolgen - nicht per PHP.
Gruß
Wuppi