我正在試圖查詢PostgreSQL 8.4.2服務器中的一個表以獲取開高 - 低 - 關閉數據。表格和我的第一個查詢如下。查詢PostgreSQL的Open-High-Low-Close(OHLC)報告
問: 是否有一種方式來獲得相同的結果,而無需使用子查詢,如下面的例子查詢?也許使用FIRST_VALUE()或LAST_VALUE()窗口方法?
-- FIRST ATTEMPT AT OHLC
SELECT
contract_id
, TO_CHAR(ts, 'YYMMDDHH24MI')
, (SELECT price FROM fill minF WHERE minF.fill_id = MIN(f.fill_id)) AS open
, MAX(f.price) AS high
, MIN(f.price) AS low
, (SELECT price FROM fill maxF WHERE maxF.fill_id = MAX(f.fill_id)) AS close
FROM fill f
GROUP BY 1,2
ORDER BY 1,2;
-- SIMPLIFIED DDL
CREATE TABLE fill
(
contract_id SEQUENCE PRIMARY KEY
, ts TIMESTAMP
, price NUMERIC(10,4)
);
* fill_id *參數來自哪裏?實際上,我試圖將此查詢適用於我的案例,但沒有成功 – Azathoth 2016-07-28 14:01:13