Mam dwa stoliki i chcę je scalić
TERMS_TABLE
ID | TERMS
309 | "hardware"
309 | "software"
309 | "computer"
TFIDF_TABLE
ID | TERMS
309 |"computer,phone,mp3...."
Teraz chcę dodać kolumnę WARUNKI TERMS_TABLE
do kolumny warunków z TFIDF_TABLE
ale jeśli TFIDF_TABLE zawiera już WARUNKI TERMS_TABLE, nie powinienem wstawiać tego terminu do NEW_TFIDF_TABLE, podobnie jak to
Wynik powinien być:
NEW_TFIDF_TABLE
ID | TERMS
309 |"computer,phone,mp3....,hardware,software"
Jak mogę to zrobić ?
Odpowiedzi:
2 dla odpowiedzi № 1Jeśli używasz Oracle 11, możesz spróbować:
select t3.id, t3.terms||","||t4.terms terms from
(
select t1.id, listagg(t1.terms,",") within group (order by t1.terms) terms
from terms_table t1 join tfidf_table t2 on t1.id=t2.id
where instr(t2.terms,t1.terms)=0
group by t1.id )
t3 right outer join tfidf_table t4 on t3.id=t4.id
Na Oracle 10 możesz spróbować
select t3.id, t3.terms||","||t4.terms terms from
(
select t1.id, wm_concat(t1.terms) terms
from terms_table t1 join tfidf_table t2 on t1.id=t2.id
where instr(t2.terms,t1.terms)=0
group by t1.id )
t3 right outer join tfidf_table t4 on t3.id=t4.id