Hallo Rouven,
select email, count(email) from tabelle group by email having count(email)=2;
2 bitte, ansonsten sind nur die echt-doppelten drin, nicht aber die dreifachen.
1 bitte, ansonsten sind die echt doppelten auch nicht drin :-)
Deine Lösung zu (2) funktioniert nur, falls name+vorname+telefon die einzig relevante Ähnlichkeit ist, gilt aber auch name+vorname+stadt wird die Abfrage höllisch umfangreich.
Eben. (3 aus x) kann je nach Größe von x verdammt groß werden. Bei 3 Übereinstimmungen und 8 Spalten wären es bereits 112 Möglichkeiten, die zu betrachten sind :-)
Was ich mir vorstellen kann wäre in etwa folgendes:
Kreuzprodukt der Tabelle mit sich selbst.
eingeschränkt mittels einer Funktion, die die Übereinstimmungen in der Liste der relevanten Spalten zählt und deren Rückgabewert mindestens 3 ist :-)
Ich kann mir nicht vorstellen, dass das performant ist - aber besseres fällt mir auch nicht ein.
Freundliche Grüße
Vinzenz