lunedì 14 luglio 2014

Sql per calcolare prodotto matriciale

Una matrice sparsa (cioè con molti zeri), può essere rappresentata nel formato (i,j,value)
dove i= riga j=colonna e value=il valore != 0 della matrice.
Esempio una matrice del tipo
0 0 1
1 0 0
5 5 0
sarà rappresentata dai seguenti record:
0 2 1
1 0 1
2 0 5
2 1 5

Per effettuare il prodotto matriciale si può utilizzare una join di questo tipo:


SELECT a.row_num, b.col_num, SUM(a.value*b.value) from a,b 
on a.col_num=b.row_num group by a.row_num,b.col_num;


Nessun commento:

Posta un commento