Je dois multiplier chaque élément de 2 tableaux et projeter une colonne qui est un tableau et chaque élément est le résultat du produit.Produit d'éléments avec le même index dans 2 tableaux
Exemple:
select * from vetor_query;
Retours:
query_id |pesos |
---------|----------------------------------------------------------------------------------------------------|
1 |{2.0000,0.4150,2.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000} |
Et la requête:
select * from vetor_documento;
Retours:
doc |pesos |
-------|----------------------------------------------------------------------------------------------------|
d1.txt |{3.0000,0.8301,4.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000} |
d2.txt |{2.0000,0.0000,0.0000,0.0000,2.0000,2.0000,2.0000,2.0000,2.0000,0.0000,0.0000,0.0000,0.0000,0.0000} |
d3.txt |{0.0000,1.0729,0.0000,0.0000,0.0000,0.0000,2.0000,1.0000,0.0000,2.0000,2.0000,0.0000,0.0000,0.0000} |
d4.txt |{0.0000,1.0729,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,5.1699,4.0000,4.0000} |
J'ai besoin de combiner les deux requêtes (jointure croisée) et de produire en conséquence tableau de produit interne pour chaque doc
et query_id
.
Ma première tentative était celle-ci:
select vq.query_id, vd.doc, unnest(vq.pesos) * unnest(vd.pesos)
from vetor_query vq
cross join vetor_documento vd;
Cependant, il donne cette erreur:
Functions and operators can take at most one set argument