sql - AWS Timestream:如何选择 OHLC 值?
问题描述
我正在尝试使用 AWS Timestream 作为股票分析应用程序的 POC 的数据源。我计划以数据库中可用的最低间隔保存股票数据,然后查询所需的时间范围。
到目前为止,我尝试的是使用窗口函数。
但我就是无法让它工作。我已经尝试了以下查询:
SELECT BIN(time, 15m) as binned_timestamp,
max(measure_value::double) as high,
first_value(measure_value::double) over (partition by BIN(time, 15m)) as open,
last_value(measure_value::double) over (partition by BIN(time, 15m)) as close,
min(measure_value::double) as low
FROM mydb.mytable
GROUP BY BIN(time, 15m),
first_value(measure_value::double),
last_value(measure_value::double)
ORDER BY binned_timestamp
结果是
第 3:2 行:'"first_value"(measure_value::double) OVER (PARTITION BY "BIN"(time, INTERVAL '15' MINUTE))' 必须是聚合表达式或出现在 GROUP BY 子句中
SELECT BIN(time, 15m) as binned_timestamp,
max(measure_value::double) as high,
first_value(measure_value::double) over (partition by BIN(time, 15m)) as open,
last_value(measure_value::double) over (partition by BIN(time, 15m)) as close,
min(measure_value::double) as low
FROM mydb.mytable
GROUP BY BIN(time, 15m),
first_value(measure_value::double),
last_value(measure_value::double)
ORDER BY binned_timestamp
结果是
第 8:2 行:GROUP BY 子句不能包含聚合、窗口函数或分组操作:["first_value"(measure_value::double) OVER (PARTITION BY "BIN"(time, INTERVAL '15' MINUTE))]
这两个有点矛盾。两者都说以另一种方式做,但另一种方式说像以前一样做..
所以我有点卡在这里,我的 SQL 技能并不离谱。任何帮助表示赞赏。
解决方案
推荐阅读
- python - Pandas:如何仅删除列末尾的最后一个连字符
- google-forms - 如何根据其他用户过去的回复使 Google 表单自动填充?
- c - 我知道一个地址,但我应该如何判断在哪个部分?使用C的全局区域或堆区域或堆栈区域
- json - 如何解决“手势 RangeError(索引)捕获的异常:无效值:有效值范围为空:0”
- c++ - 什么会使多边形算法中的点仅在正向和反向运行时才能正常工作?
- php - PHP:如何使用键->值对每两个分隔符将一个字符串分解为一个数组
- kubernetes - 将 GKE 集群拆除为“全新”状态而不删除它?
- scala - Spark——自定义reduce函数保存到磁盘然后上传到s3
- javascript - XMLHttpRequest 返回事件对象而不是实际数据
- fortran - Fortran 将未知大小的文件读入数组