小编rav*_*77o的帖子

查询 PostgreSQL 的 Open-High-Low-Close (OHLC) 报告

我正在尝试查询 PostgreSQL 8.4.2 服务器中的表以获取开盘-高-低-收盘数据。该表和我的第一个查询如下。

问题: 有没有一种方法可以在不使用子查询的情况下获得与下面的示例查询相同的结果?也许使用 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)
);
Run Code Online (Sandbox Code Playgroud)

sql postgresql finance

4
推荐指数
1
解决办法
3755
查看次数

标签 统计

finance ×1

postgresql ×1

sql ×1