我想通過說我是SQL的新手,但我的工作現在需要我在其中工作。PGSQL:遍歷整個表,在每一行上執行計算
我有一個包含地形點數據(x,y,z)的數據集。我正在嘗試基於這些數據建立一個KNN模型。對於每個點'P',我搜索距P最近的數據集中的100個點(最接近地理上最接近的點)。然後,我平均這些點的值(這個平均值被稱爲殘差),並將此值添加到'resid'列中的表中。
作爲一個概念證明,我試圖簡單地遍歷表,並在每行中將'resid'列的值設置爲1.0。
我的查詢是這樣的:
CREATE OR REPLACE FUNCTION LoopThroughTable() RETURNS VOID AS '
DECLARE row table%rowtype;
BEGIN
FOR row in SELECT * FROM table LOOP
SET row.resid = 1.0;
END LOOP;
END
' LANGUAGE 'plpgsql';
SELECT LoopThroughTable() as output;
此代碼執行和返回成功,但是當我檢查表,不改變已經作出。我的錯誤是什麼?
你必須執行'UPDATE'查詢更改表數據。 –
因此,如果我在循環完成後執行UPDATE查詢,是否會將更改提交到表中? –