如何在CnosDB中正确统计单个传感器的总数据量?
CnosDB标签筛选下COUNT(*)统计异常问题
在CnosDB中创建如下表并插入数据:
CREATE TABLE table_1(temp DOUBLE, fan BIGINT, TAGS(ta, tb)); INSERT INTO table_1(time, temp, fan, ta, tb) VALUES ('2024-01-01T00:00:00', 70, 0, 'a1', 'b1'), ('2024-01-01T00:00:00', 71, 0, 'a2', 'b2'), ('2024-01-01T00:01:00', 70, 0, 'a1', 'b1'), ('2024-01-01T00:01:00', 71, 0, 'a2', 'b2');
统计标签ta='a1'且tb='b1'对应的数据总量时,出现结果不符合预期的情况,以下是三次测试的SQL语句及结果:
- 仅使用标签列筛选时,
COUNT(*)返回错误值
SELECT COUNT(*) AS total FROM table_1 WHERE ta = 'a1' and tb = 'b1';
查询结果:
+-------+ | total | +-------+ | 1 | +-------+
- 加入字段列筛选条件
time > 0后,得到预期结果
SELECT COUNT(*) AS total FROM table_1 WHERE ta = 'a1' and tb = 'b1' and time > 0;
查询结果:
+-------+ | total | +-------+ | 2 | +-------+
- 加入额外查询字段
MIN(time)后,得到预期结果
SELECT COUNT(*) AS total, MIN(time) as min_time FROM table_1 WHERE ta = 'a1' and tb = 'b1';
查询结果:
+-------+---------------------+ | total | min_time | +-------+---------------------+ | 2 | 2024-01-01T00:00:00 | +-------+---------------------+
内容的提问来源于stack exchange,提问作者Darts
相关产品推荐
相关产品推荐

