ich einen Datensatz mit mehreren Spalten haben, die wie folgt aussehen:Finden Sie doppelte Werte zwischen mehreren Spalten in den verschiedenen Reihen
ID1 ID2 ID3 ID4
Blue Grey Fuchsia Green
Black Blue Orange Blue
Green Green Yellow Pink
Pink Yellow NA Orange
Was ich tun möchte, ist zu zählen, wie oft jeder Wert über die vier Spalten dupliziert . Zum Beispiel ist es das, was ich würde wieder von oben zu bekommen:
ID Replicates
Blue 3
Black 1
Green 3
Pink 2
Grey 1
Yellow 2
Fuchsia 1
Orange 2
Ich würde auch vorhanden ist, in dem bei der Frequenz eingestellt, welchem Daten-ID-Wert in der Lage sein möge fragen> 2. Das erwartete Ergebnis wäre also: Grün und Blau.
Irgendwelche Gedanken, wie man das in Oracle macht? Vielen Dank!
Danke! Die obige Abfrage funktioniert, wenn "as dt" aus der Abfrage entfernt wird. Andernfalls wird der Fehler "SQL-Befehl nicht ordnungsgemäß beendet" angezeigt. Kannst du auch die Logik dieser Abfrage erklären? –
'als dt' entfernt. (ANSI SQL, aber Oracle mag es nicht ...) Die Unterabfrage (eine abgeleitete Tabelle) gibt einfach alle Daten als eine Spalte zurück. Die GROUP BY ist für das Zählen zuständig. (Mit HAVING wird das Ergebnis auf nur mehr als zwei Farben beschränkt.) – jarlh