/ / Agreguj kolumny, ale należy wstawić odrębne terminy - wyrocznia, odrębność, agregacja, agregacja łańcuchów

Należy wstawić kolumny zbiorcze, ale odrębne terminy - wyrocznia, odrębna, zagregowana, agregacja ciągów

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 № 1

Jeś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