我有一個整列的表 - 我需要一種方法來在另一個表中生成此列的「前綴」。使用SQL進行前綴計算,沒有定義過程
例如,我需要1,1,0,1,0,1,0,0作爲輸入
我需要1,1,1,1,2,2,3,3,3作爲輸出
這需要在SQLite的SQL方言中完成,沒有用戶定義的函數或存儲過程是可能的。
我有一個整列的表 - 我需要一種方法來在另一個表中生成此列的「前綴」。使用SQL進行前綴計算,沒有定義過程
例如,我需要1,1,0,1,0,1,0,0作爲輸入
我需要1,1,1,1,2,2,3,3,3作爲輸出
這需要在SQLite的SQL方言中完成,沒有用戶定義的函數或存儲過程是可能的。
嘗試是這樣的:從
select value,
(select sum(t2.value) from table t2 where t2.id <= t1.id) as accumulated
from table t1
謝謝!完美工作,儘管緩慢... – 2010-10-13 14:46:22
所以從input
表output
表中插入你需要下面的查詢:
INSERT INTO output
SELECT id,
(SELECT sum(i1.value) FROM input AS i1 WHERE i1.rowid <= i2.rowid) as VALUE
FROM input AS i2
你能解釋一下你用邏輯它能讓你從「1,0,0,0,1,0,1,0,0」到「1,1,1,1,2,2,3,3,3」嗎?這就像一個總跑? – 2010-10-13 14:11:31
你能否澄清一下什麼是「前綴」的列?所以目前還不清楚如何根據輸入生成輸出。 – cement 2010-10-13 14:11:45
好了,它現在是乾淨的(更新後)。所以你需要以前的元素的總和。 – cement 2010-10-13 14:16:06