我有一個對持有貨幣的交易數據與下面的模式命名trades
表:選擇的時間間隔內的第一和最後一排
id - uuid
timestamp - timestamp without time zone
price - numeric
我希望能夠在我可以建立一種查詢蠟燭圖。爲此,我需要第一價格,在最後價格,在最高價格和分鐘價格,按時間間隔進行分組。到目前爲止,我有這樣的:
CREATE FUNCTION ts_round(timestamptz, INT4) RETURNS TIMESTAMPTZ AS $$
SELECT 'epoch'::timestamptz
+ '1 second'::INTERVAL * ($2 * (extract(epoch FROM $1)::INT4/$2));
$$ LANGUAGE SQL;
SELECT ts_round(timestamp, 300) AS interval_timestamp
, max(price) AS max, min(price) AS min
FROM trades
GROUP BY interval_timestamp
ORDER BY interval_timestamp DESC
如何獲得第一價格和最後價格這些區間內?
你是如何定義'第一價格'和'最後價格'的?按時間戳? –
我嚴重懷疑你的功能是否真正滿足你的需求。它將*四捨五入至整秒後有效*截斷*至* n * - 第二個間隔。我懷疑你真的想要將***或***舍入爲* n * - 第二個間隔。對? –
[給定的時間/間隔來計算每個分組數據中的開放/高/低/關閉值]的可能重複(http://stackoverflow.com/questions/27399054/given-time-interval-to-calculate-open-high - 低收入每個分組數據) – radar