SQL unter Oracle: Doppelte Einträge in einer Spalte finden
Steffen Trenkler
- datenbank
0 o40 Tobias Kloth0 Michael Schröpl
Hi,
folgendes Problem:
Man stelle sich eine Tabelle namens "TAB" vor. Diese hat 3 Spalten:
"ID" - Primärschlüssel "NN" - Nachname "VN" - Vorname
Nun das Beispiel:
ID NN VN
--------------------
01 MEYER Klaus
02 MEYER EGON
Wie kann ich jetzt per SQL alle diejenigen Einträge dieser Tabelle finden, die innerhalb einer Spalte doppelt oder mehrfach vorkommen, ohne, dass ich den String "MEYER" angeben muß? Zu deutsch: Welche Einträge kommen wie oft mehrfach vor?
Hatte da schon mal was in der Richtung:
SELECT A.NN, B.NN
FROM TAB A, TAB B
WHERE A.NN = B.NN;
Aber da rennt Oracle immer in eine Endlosschleife rein.
need help
Hallo,
such mal in der Doku nach
'group by' und 'having'
Gruss
o4
Hallo Steffen,
SELECT A.NN, B.NN
versuchs mal mit SELECT DISTINCT A.NN, DISTINCT B.NN FROM TAB A, TAB B
FROM TAB A, TAB B
WHERE A.NN = B.NN;
wo kommt eigentlich auf einmal die zweite Tabelle her?
Grüße aus Nürnberg
Tobias
Hi Steffen,
SELECT A.NN, B.NN
FROM TAB A, TAB B
WHERE A.NN = B.NN;
Aber da rennt Oracle immer in eine Endlosschleife rein.
keineswegs. Nur in eine fürchterlich aufwändige Operation, diese (wahrscheinlich nicht gerade kleine) Tabelle mit sich selbst zu JOINen.
Die Methode mit "GROUP BY" und "HAVING" ist im Vergleich hierzu wesentlich sinnvoller - vor allem dann, wenn Deine Einträge jeweils im Schnitt eher selten vorkommen.
Viele Grüße
Michael