【发布时间】:2014-11-18 21:00:36
【问题描述】:
我有两张表,一张包含季度数据,一张包含每日数据。我想加入这两个表,以便在每日数据中的每一天,每天都会选择并返回该季度的季度数据。我正在使用 Postgres 9.3。
当前查询如下:
select
a.ID,
a.datadate,
b.*,
case when a.datadate = b.rdq then 1 else 0 end as VALID
from proj_data a, proj_rat b
where a.id = b.id
and b.rdq = (select min(rdq)
from proj_rat c
where a.id = c.id and a.datadate >= c.rdq);
但它非常慢,我需要为数千个 ID 执行此操作。谁能提出更有效的解决方案?
【问题讨论】:
-
我在 rdq 和 ID 上创建了索引,它从几分钟到几毫秒。我的错。我仍然很好奇是否有人有更有效的查询。
标签: sql postgresql select