Ich muss links zwei Tabellen verbinden, wo von der rechten Tabelle brauche ich einige Spalten auf eine Join-Bedingung von drei Spalten und einige Spalten auf Join-Bedingung von zwei ähnlich, aber eine andere Spalte (wieder 3 Spalten) und einige Spalten auf Join-Bedingung von eine Spalte (die eine der nicht übereinstimmenden Spalten in vorherigen Joins ist).Wie kann die Anzahl der Joins reduziert werden?
Lassen Sie mich zum Beispiel erklären
Tabelle A hat Spalten a1, a2, a3, a4, a5 Tabelle B Spalten b1, b2, b3, b4, b5, b6, b7
I Now benötigen
- a1, a2
- ,
- a3, a4, b1
- wenn a2 = b2, a3 = b3, a4 = b4,
- b6, wenn a2 = b5, a3 = b3, a4 = b4,
- b7, wenn a2 = b2
Jetzt Wie kann ich dies erreichen, ohne die Tabellen mehrmals Beitritt oder als weniger Zeit wie möglich. Mit CASE WANN DANN Struktur oder etwas anderes. Die Abfragen sind für Hive, aber die meisten SQL-Funktionen werden unterstützt. Hive hat verschiedene Optimierungstechniken, aber sql Jungs sind willkommen.
Vielen Dank im Voraus für Ihre Mühe.
Beispieldaten und gewünschte Ergebnisse würden den Leuten wirklich helfen zu verstehen, was Sie tun möchten. –