当前位置: 首页 > news >正文

TDengine 数据函数 MOD 用户手册

在这里插入图片描述

MOD 函数

语法

MOD(expr1, expr2)

功能说明

  • 计算 expr1 % expr2 的结果(余数/取模)。
  • 整数参与时行为等同数学取模;浮点参与时按浮点余数规则计算,结果类型为 DOUBLE。

版本

  • v3.3.3.0

返回结果类型

  • DOUBLE

适用数据类型

  • 数值类型

嵌套子查询支持

  • 适用于内层查询和外层查询

适用于

  • 表和超级表

使用说明

  • 参数必须为 2 个。
  • 若 expr2 为 0,返回 NULL。
  • 若任一参数为 NULL,返回 NULL。
  • 可与选择(Selection)、投影(Projection)一起使用,不与聚合(Aggregation)在同层直接混用。

示例所用表与数据(可直接复制执行)

-- 建库与使用
CREATE DATABASE IF NOT EXISTS power;
USE power;-- 按要求的智能电表表结构
CREATE STABLE meters (ts TIMESTAMP,current FLOAT,voltage INT,power DOUBLE
) TAGS (groupid INT,location VARCHAR(64)
);-- 子表
CREATE TABLE d1001 USING meters TAGS (1, 'SF');
CREATE TABLE d1002 USING meters TAGS (2, 'LA');-- 写入数据
INSERT INTO d1001 VALUES('2024-01-01 10:00:00.000', 10.3, 220, 2266.0),('2024-01-01 10:01:00.000', 12.6, 221, 2784.6),('2024-01-01 10:02:00.000',  8.5, 223, 1895.5);INSERT INTO d1002 VALUES('2024-01-01 10:00:00.000',  9.0, 219, 1971.0),('2024-01-01 10:01:00.000', 14.0, 222, 3108.0),('2024-01-01 10:02:00.000',  7.2, 220, 1584.0);

基础示例

-- 常量取模
SELECT MOD(10, 3) AS r1, MOD(-10, 3) AS r2, MOD(10, -3) AS r3;-- 浮点取模
SELECT MOD(10.5, 3) AS r4;-- 非法与 NULL 输入
SELECT MOD(10, 0) AS r5, MOD(NULL, 3) AS r6, MOD(10, NULL) AS r7;

列参与计算

-- 电压奇偶标记(偶数电压 remainder=0)
SELECT ts, voltage, MOD(voltage, 2) AS vol_parity
FROM d1001
ORDER BY ts;-- 功率按 10 分桶(0~9 桶)
SELECT ts, power, MOD(power, 10) AS power_bin10
FROM d1002
WHERE power > 0
ORDER BY ts;-- 超级表查询:查看各表电压对 10 的余数
SELECT tbname, ts, voltage, MOD(voltage, 10) AS v_mod10
FROM meters
ORDER BY tbname, ts;

作为过滤条件

-- 仅保留偶数电压的记录(用于相位/合规校验)
SELECT ts, voltage, current
FROM d1002
WHERE MOD(voltage, 2) = 0
ORDER BY ts;

分组统计中的分桶用法

-- 电压末位(对 10 取模)分布
SELECT MOD(voltage, 10) AS v_last_digit, COUNT(*) AS cnt
FROM meters
GROUP BY v_last_digit
ORDER BY v_last_digit;

生产场景应用与意义

  • 场景 A:偶数电压筛选(合规/相位对齐)

    • 目的:筛出满足偶数电压的样本,用于配电相位对齐或设备接线合规性检查。
    • 示例:
    SELECT ts, voltage
    FROM meters
    WHERE MOD(voltage, 2) = 0
    ORDER BY ts;
    
  • 场景 B:分桶统计(量程与量化噪声评估)

    • 目的:用 MOD(voltage, 10) 观察电压末位分布,评估传感器量化级与噪声特征,辅助设定告警阈值与去噪策略。
    • 示例:
    SELECT MOD(voltage, 10) AS bucket, COUNT(*) AS cnt
    FROM meters
    GROUP BY bucket
    ORDER BY bucket;
    
  • 场景 C:任务分片/并行处理(基于标签分片)

    • 目的:按 groupid 对数据分片,便于多任务并行消费与负载均衡。
    • 示例(按 4 片路由):
    SELECT tbname, groupid, location, MOD(groupid, 4) AS shard
    FROM meters
    GROUP BY tbname, groupid, location
    ORDER BY shard, tbname;
    
  • 场景 D:定期抽样触发(流水线抽检)

    • 目的:按固定步长触发规则校验/抽检(以电压为计数近似示例,生产中可换为序列号/计数列)。
    • 示例(每 5 个电压单位触发一次):
    SELECT ts, voltage, current
    FROM meters
    WHERE MOD(voltage, 5) = 0
    ORDER BY ts;
    

注意事项

  • 除数为 0 返回 NULL,建议在 WHERE 中预先规避。
  • 浮点参与计算返回 DOUBLE,注意浮点精度。
  • 与聚合混用需遵循 SQL 分组规则。

关于 TDengine

TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。

http://www.dtcms.com/a/508802.html

相关文章:

  • 创业公司做网站免费开发游戏
  • 企业网站seo策略网站开发费
  • 怎么介绍自己做的网站网站标签怎样修改
  • 保定电子商务网站建设域名申请好了怎么做网站
  • 大规模车辆路径问题的增强神经组合优化(ICRL‘25)
  • 怎么用自己电脑做网站服务器吗wordpress 房产类模板
  • 优质双轴倾角传感器厂家与物联网角度传感器资源整合探讨
  • 股票分析AI系统部署技术方案
  • 视频网站的制作教程移动互联网开发作业
  • 2010-2050年中国中国多类产品废物流出预测数据(电子电器、线缆、汽车等)
  • 手机网站建设价格明细表中文wordpress案例
  • 吴江区建设银行招聘网站世界杯网页设计素材
  • 萝岗微网站建设无锡seo公司找哪家好
  • 棋牌,彩票网站建设WordPress文字导航功能插件
  • 忽视缓冲时间会带来哪些连锁反应
  • 23-static关键字
  • 开发型网站报价方法建设外贸网站案例
  • 网站基础模板官网在线制作
  • 《道德经》第二十四章
  • 做淘客找单子的网站软件汇
  • 投资网站哪个好国家已明令禁止现货交易
  • 专业网站建设网页推广wordpress关键字设置
  • 【生活】感冒症状 没精神,恶寒,吃布洛芬有效果吗?
  • 个人网站内容如何填写企业网站建设选题背景
  • 海量数据的topk 问题
  • 天台县建设规划局网站360seo
  • 找别人做网站要注意什么山西忻州市忻府区
  • 粉红色的网站首页无忧网站后台
  • 揭秘 SpringBoot 配置优先级:从源码到实战,一次讲透谁是 “最终话事人“
  • 正点原子RK3568学习日志13-创建设备节点