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

SQL查询需求:计算表中最近10分钟twa列的平均值

解决OF50表最后10分钟twa列平均值的SQL查询问题

问题分析

你当前的查询存在几个关键错误:

  • 时间间隔写错:用了INTERVAL '1 minutes'而非需求的10 minutes
  • 条件逻辑反转:原条件筛选的是早于最后时间减1分钟的记录,和需求的「最后10分钟范围」完全相反
  • 字段选择不规范:同时选择聚合函数AVG(twa)和非聚合字段horaire,未加GROUP BY会导致结果混乱(数据库可能返回任意一条horaire和平均值,不符合预期)

正确查询写法

写法1:子查询获取最新时间

SELECT AVG(twa) AS avg_twa
FROM OF50
WHERE horaire >= (SELECT MAX(horaire) FROM OF50) - INTERVAL '10 minutes'
  AND horaire <= (SELECT MAX(horaire) FROM OF50);

写法2:用CTE避免重复子查询(更易读)

WITH latest_record AS (
    SELECT MAX(horaire) AS last_time FROM OF50
)
SELECT AVG(o.twa) AS avg_twa
FROM OF50 o, latest_record lr
WHERE o.horaire >= lr.last_time - INTERVAL '10 minutes'
  AND o.horaire <= lr.last_time;

说明

  • MAX(horaire)用来获取表中最后一条记录的时间(比ORDER BY horaire DESC LIMIT 1更高效)
  • 条件horaire >= 最后时间 - 10分钟 AND horaire <= 最后时间精准锁定目标时间范围
  • 只返回AVG(twa)并命名为avg_twa,结果清晰符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:55:16