我知道在SQL中計算稀疏點產品很容易,但是對於很長的向量來說,最好的方法是什麼?SQL中長向量的總和
一個連接是不夠的,因爲如果一個座標被填充到一個矢量中而不是另一箇中,它將被忽略。
因此,我計算了一個PHP循環的總和...這是一個非常愚蠢的想法。
我目前正在考慮填充缺少的0爲了準備一個內部連接,但有沒有一個快捷方式(如外部連接將NULL轉換爲0)?
編輯。這裏是我的矢量表的結構:
CREATE TABLE `eigaki_vectors` (
`name` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`i1` int(10) NOT NULL,
`i2` int(10) NOT NULL,
`value` double NOT NULL,
UNIQUE KEY `key` (`name`,`i1`,`i2`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
在這種特殊情況下,一個向量組成了指數:v_{i_1, i_2}
,但這無關的問題。
我希望做這樣的事情(感謝xQbert):
SELECT v1.i1, v1.i2, isNull(v1.value, 0) + isNull(v2.value, 0)
FROM eigaki_vectors v1 FULL OUTER JOIN eigaki_vectors v2
ON v1.i1 = v2.i1 AND v1.i2 = v2.i2
AND v1.name = 'a' AND v2.name = 'b'
添加矢量a
和b
。但是FULL OUTER JOIN
在MySQL上不存在,我認爲我對name
列很笨拙。有任何想法嗎?
你能否提供一個e所涉及的表格的xample以及您試圖執行的查詢的粗略草圖? –
這是。謝謝! –