timescaledb - 使用 time_bucket 并在 timescaledb 中加入多个表
问题描述
我有一个带有几个表的简单数据库架构(Timescaledb)。每个用户都有一个带有多个指标的主传感器,每个指标都有自己的带有 user_id 和时间戳的表。
架构
Table 1
| 用户 ID | 时间戳 | val1 | 值... |:---- |:------:| -----:| - - -: 桌子 ...
用户身份 | 时间戳 | val1 | 值... |
---|
问题
我想知道如何将这些表与该time_bucket
函数合并到一个视图中。所以,如果我每 10 秒采样一次以显示类似 View
用户身份 | 时间戳 | 表 1 中的 agg val | 表 2 中的 agg val | 来自表 X 的 agg val |
---|
解决方案
是的!这是可能的!
您可以使用常规 SQL 进行尝试。下面是一些例子:
select time_bucket('1m', a.time) as bucket_a,
a.symbol || '/' || b.symbol as pair,
LAST(a.price, a.time) as last_price_a,
LAST(b.price, b.time) as last_price_b
FROM ticks a
LEFT JOIN ticks b
ON time_bucket('1m', a.time) = time_bucket('1m', b.time)
AND a.symbol = 'SYMBOL' and b.symbol = 'ANOTHER'
GROUP BY 1, 2;
请注意,我要加入该表ticks
两次,您可以将另一个表与其他指标一起加入。
另一个细节是,它现在不是过滤symbol
on where 子句,而是该JOIN
子句的一部分。
推荐阅读
- python - Matplotlib 和 Jupyter 笔记本多个交互式绘图
- python - 如何通过另一个 2D 数组对 3D numpy 数组的每一行进行排序?
- html - 为什么“_Blank”不会导致 URL 在新的浏览器窗口中打开?
- php - 如何将 Laravel 项目设置为 cPanel?
- javascript - 如何仅返回使用猫鼬执行 save() 后创建的文档
- javascript - 动态jQuery UI对话框回调函数问题
- python - 模块的 Pycharm 错误文件夹
- java - JdbcTemplate 不返回正确的结果集。为什么?
- python - Python matplotlib:多折线图的数据标签
- c# - 当不同的游戏对象与不同的游戏对象发生碰撞时,有没有办法触发不同游戏对象的动画?