【发布时间】:2018-09-08 11:29:30
【问题描述】:
我的表格如下所示:
我正在尝试对这两个表进行 INNER JOIN,这样我会得到这样的结果:
time | block_height | differential_pressure |
---------------------+--------------+-----------------------+
2018-09-08 11:14:10 | 83.7 | 286.84 |
2018-09-08 11:14:10 | 83.6 | 282.14 |
2018-09-08 11:14:11 | 83.4 | 298.35 |
2018-09-08 11:14:12 | 83.1 | 298.23 |
2018-09-08 11:14:12 | 82.9 | 294.76 |
2018-09-08 11:14:13 | 82.7 | 288.37 |
但是当我运行以下查询时:
SELECT * FROM rt_block_height
INNER JOIN rt_differential_pressure
ON rt_block_height.time = rt_differential_pressure.time;
这是我得到的:
我不明白这里发生了什么。似乎添加了一些随机的附加行,但我不知道它为什么会发生。原表只有6行,但查询表返回10。
我不知道这些信息是否有帮助,但这是一个 TimescaleDB 超表。这是创建表的源代码:
CREATE TABLE IF NOT EXISTS public.rt_BLOCK_HEIGHT
(
"time" timestamp without time zone,
BLOCK_HEIGHT double precision
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.rt_BLOCK_HEIGHT
OWNER to postgres;
SELECT create_hypertable('rt_BLOCK_HEIGHT', 'time');
【问题讨论】:
-
嗨。请use text, not images/links, for text (including code, tables & ERDs)。使用图像仅是为了方便补充文本和/或无法在文本中给出的内容。永远不要给出没有图例/键的图表。如果您有代表,请使用编辑功能内联,而不是链接 - 使您的帖子独立。阅读minimal reproducible example并采取行动。
标签: postgresql inner-join timescaledb