USEGEAR

导航

设备数据采集与统计

数据采集分成自动采集和人工采集,导致统计发生大问题:

自动采集三分钟一次;人工采集不定期。

通过转速实现设备运转时间的统计。

✅ 最终设计回顾(补充说明)

1. 采集源

来自 IoTData 表,数据包括采集时间、设备编号、主机转速等。

2. 采集模式过滤

只取自动采集数据:

sql
WHERE SensorType = 'main_Nn_pv' AND (CollectMode IS NULL OR CollectMode = '')

3. 按时间排序(核心)

使用:

sql
ROW_NUMBER() OVER (PARTITION BY DeviceID ORDER BY sdateTime)
  • 每台设备独立排序

  • 排序顺序 = 时间先后

  • 为配对前后两条记录准备条件(用 cur.rn = pre.rn + 1 来做成对分析)

这一步至关重要!

  • 保证配对逻辑基于时间线

  • 避免错配/跨天错乱

  • 对自动采集(稳定 3 分钟/次)尤为可靠

4. 配对计算

利用 ROW_NUMBER() 分配的顺序自连接,构建:

  • 当前时间(cur)

  • 上一条时间(pre)

  • DeltaMin = 相邻记录间的分钟数

5. 运转判定规则

sql
CASE WHEN preSpeed > 10 AND curSpeed > 10 THEN DeltaMin WHEN preSpeed > 10 AND curSpeed <= 10 THEN DeltaMin ELSE 0 END

6. 分组统计输出

按:

  • 日期(由 cur.sdateTime 转换)

  • 设备编号、设备名称

输出:

  • 每天每设备运行分钟总和 ➜ 小时/天形式

posted on 2025-07-12 10:01  USEGEAR  阅读(27)  评论(0)    收藏  举报