【TDengine 使用环境】
测试
【TDengine 版本】
3.4.1.0
【操作系统以及版本】
centos7.9
【部署方式】容器
SELECT _wstart, _wend, device_id,
TWA(zlgl) **AS** *\`value\`*
FROM product_nbq
WHERE device_id IN (2072981781495152641)
AND zlgl IS NOT NULL
AND zlgl >= 0
AND ts >= ‘2026-07-09 00:00:00’
AND ts <= ‘2026-07-09 23:59:59.999’
PARTITION BY device_id
INTERVAL(1h)
使用这个sql算出来的结果有负数,但是实际原表里这一列没有负数。并且用了过滤。
但是时间范围缩短负数就没了,但是结果是错的。
SELECT device_id,
TWA(zlgl) **AS** *\`value\`*
FROM product_nbq
WHERE device_id IN (2072981781495152641)
AND zlgl IS NOT NULL
AND zlgl >= 0
AND ts >= ‘2026-07-09 09:00:00’
AND ts < ‘2026-07-09 10:00:00’
PARTITION BY device_id
INTERVAL(1h)
最后发现 interval 去掉,不走时间窗口,单独查结果就正确了。这是为什么。
select device_id,
TWA(zlgl) **AS** *twa_value*
FROM product_nbq
WHERE device_id in (2072981781495152641)
AND ts >= ‘2026-07-09 09:00:00’
AND ts < ‘2026-07-09 10:00:00’
PARTITION BY device_id
