在我的數據庫中,我有一個表「數據點」,兩列「Id」(整數)和「描述」(字符變化)。 Table "Datapoint"PostgreSQL - 結合函數的SELECT和返回值
然後我有一個表「記錄」與三列「Id」(整數),「Dt」(時間戳無時區)和「價值」(雙精度)。 Table "Logging"
我還具有以下功能:
CREATE OR REPLACE FUNCTION count_estimate(query text)
RETURNS integer AS
$BODY$ DECLARE rec record;ROWS INTEGER;BEGIN FOR rec IN EXECUTE 'EXPLAIN ' || query LOOP ROWS := SUBSTRING(rec."QUERY PLAN" FROM ' rows=([[:digit:]]+)');EXIT WHEN ROWS IS NOT NULL;END LOOP;RETURN ROWS;END $BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
這個函數返回由一個SELECT-查詢找到的條目的估計數,例如SELECT count_estimate('SELECT * FROM「Logging」WHERE「Id」= 3')將返回2.
我現在想將表「Datapoint」上的SELECT查詢與函數的返回值相結合,所以,我的結果是這樣的:
ID | Description | EstimatedCount
1 | Datapoint 1 | 3
2 | Datapoint 2 | 4
3 | Datapoint 3 | 2
4 | Datapoint 4 | 1
我的SELECT查詢應該是這個樣子:
SELECT
"Datapoint"."Id",
"Datapoint"."Description",
(SELECT count_estimate ('SELECT * FROM "Logging" WHERE "Logging"."Id" = "Datapoint"."Id"')) AS "EstimatedCount"
FROM
"Datapoint"
所以我的問題是寫一個運行SELECT查詢我的目的。
......但是這是查詢的只是文字副本不行,不行? –
請參閱下面的勞倫茲的修正,但這裏的區別在於,您不需要將它放在子查詢中。 –
啊,我沒有看到。 –