流计算数据问题统计问题

【TDengine 使用环境】
生产环境 /测试/ Poc/预生产环境

测试环境

【TDengine 版本】

3.3.8.1

【操作系统以及版本】

centos7

【部署方式】容器/非容器部署

容器

【集群节点数】

单机

【集群副本数】

【描述业务影响】

【问题复现路径/shan】做过哪些操作出现的问题

【遇到的问题:问题现象及影响】

我创建了一个流计算:

create stream if not exists lute_iot_device.t31_daily_stats_stream_min_max_avg interval(1d) sliding (1d) from lute_iot_device.product_property_3yhuya partition by tbname stream_options (watermark (2m) | fill_history (1)) into lute_iot_device.t31_daily_stats output_subtable (concat(‘t31_daily_’, lower(tbname))) tags ( device_name varchar(64) as replace (tbname, ‘device_property_’, ‘’) ) as select _twstart as ts, cast(_tlocaltime /1000000 as timestamp) as calculate_time, _twend as window_end, round(avg(temperature), 2) as avg_temperature, max( case when identifier = ‘high_temperature_alarm’ then temperature else null end ) as max_temperature, min( case when identifier = ‘low_temperature_alarm’ then temperature else null end ) as min_temperature, uid from %%tbname where ts >= _twstart and ts <= _twend partition by device_name, uid;

我这个设备可能被多个人同时使用我想统计,比如这个温度计可能同时被a,b,c人使用,我想统计每个人平均温度这些, 就用了上面那个流语法。

但是我计算出来的结果只有一个用户的记录,同时还有一个的计算时间是2025-10-29 09:09:58.436左右数据库没多少记录

uid为1981626731278148843没有计算出来

【资源配置】

【报错完整截图】

好的 我们看下

确实不应该出现子表中只有单个分组数据的现象,我们具体看下。

– 创建数据库(如果不存在)
CREATE DATABASE IF NOT EXISTS lute_iot_device;

– 使用数据库
USE lute_iot_device;

– 创建超级表(STable)
CREATE STABLE IF NOT EXISTS product_property_3yhuya (
ts TIMESTAMP,
temperature FLOAT,
type NCHAR(20),
identifier NCHAR(50),
uid NCHAR(128),
switchzsy BOOL
) TAGS (
device_name NCHAR(64),
product_key NCHAR(64)
);建表语法如上

此话题已在最后回复的 10 天后被自动关闭。不再允许新回复。