You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL按时间范围聚合Table B列实现两表关联查询

需求可行性结论

该需求完全可以通过标准SQL实现,无需额外写代码定时重写结果表,只要做好索引优化,查询性能完全可以支撑近实时API调用。

核心实现逻辑
  • 关联规则:Table A和Table B通过Asset字段做等值关联
  • 时间过滤:限定Table B的EventStart字段落在Table A对应LastChanged到当前时间的区间内
  • 分组维度:按Table A的Asset、Part字段分组,保证Table A每一条Asset+Part记录对应一行聚合结果
  • 异常兼容:计算第二项聚合值时要处理Temp为0的场景,避免出现除以0的报错
示例SQL代码
SELECT
  a.Asset,
  a.Part,
  SUM(b.Revs) AS 总转数,
  SUM(CASE WHEN b.Temp != 0 THEN (b.Revs * b.Load) / b.Temp ELSE 0 END) AS 负载转数温度比总和
FROM
  Table_A a
LEFT JOIN
  Table_B b
  ON a.Asset = b.Asset
  AND b.EventStart >= a.LastChanged
  AND b.EventStart <= CURRENT_TIMESTAMP -- 若只需统计到当日零点,可替换为CURRENT_DATE
GROUP BY
  a.Asset,
  a.Part,
  a.LastChanged;
性能优化建议

如果两张表数据量较大,可通过索引优化提升查询速度:

  • 给Table A建联合索引 (Asset, Part, LastChanged),覆盖分组和关联所需字段
  • 给Table B建联合覆盖索引 (Asset, EventStart, Revs, Load, Temp),关联查询时无需回表取数

内容的提问来源于stack exchange,提问作者ortunoa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:57:02