TDengine 数学函数 PI 用户手册

PI 函数

语法

sql 复制代码
PI()

功能说明

  • 返回圆周率常量 π,约等于 3.141592653589793。
  • 为确定性标量函数,可在任意数值表达式中参与计算。

版本

  • v3.3.3.0

返回结果类型

  • DOUBLE

适用数据类型

  • 无参数

嵌套子查询支持

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

适用于

  • 表和超级表

使用说明

  • PI() 无参数、对所有行返回同一常量。
  • 常与三角函数(SIN/COS/TAN)、弧度/角度换算(手工使用 x180/PI() 或 xPI()/180)配合。
  • 只能与普通列、选择(Selection)、投影(Projection)一起使用,不与聚合(Aggregation)在同一层直接混用。

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

sql 复制代码
-- 建库与使用
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);

使用示例

1) 基础用法(常量与三角函数)

sql 复制代码
-- 返回 π 常量
SELECT PI();

-- 经典值:sin(π/2)=1, cos(π)= -1
SELECT SIN(PI()/2) AS sin_half_pi, COS(PI()) AS cos_pi;

2) 弧度与角度换算

sql 复制代码
-- 将 180° 转为弧度:π = 180° * π / 180
SELECT 180 * PI() / 180 AS pi_by_degree;

-- 将弧度转为角度:x(弧度) * 180 / π
SELECT (PI()/3) * 180 / PI() AS deg_of_pi_over_3;

3) 基于功率因数角(电力分析)计算

目的

  • 利用 P≈V·I·cosφ,反推功率因数角 φ;用 φ(弧度) 与 φ(角度) 评估功率因数状态、无功补偿需求等。
sql 复制代码
-- φ_rad = ACOS(P/(V*I))
-- φ_deg = φ_rad * 180 / PI()
SELECT
  ts,
  current,
  voltage,
  power,
  ACOS(power/(voltage*current))                 AS phi_rad,
  ACOS(power/(voltage*current)) * 180 / PI()    AS phi_deg
FROM d1001
WHERE voltage*current > 0;

4) 交流角频率/周期计算(50/60Hz)

目的

  • 由频率 f 计算角频率 ω=2·π·f 与周期 T=1/f,用于采样策略、信号分析与滤波设计。
sql 复制代码
-- 50Hz
SELECT 2*PI()*50 AS omega_50, 1.0/50 AS period_50;

-- 60Hz
SELECT 2*PI()*60 AS omega_60, 1.0/60 AS period_60;

5) 与表列组合的表达式示例

目的

  • 在查询中直接引用 π 常量与列混合运算,形成可读、可维护的物理量表达式。
sql 复制代码
-- 以"角频率*采样间隔"的形式构建一个无量纲相位步长(示例中采样间隔假设 1/100 秒)
SELECT
  ts,
  voltage,
  current,
  power,
  2*PI()*50*(1.0/100) AS phase_step_50hz
FROM d1002
ORDER BY ts;

生产场景应用与函数意义

  • 交流电分析与控制

    • 目的:通过 ω=2·π·f、φ(功率因数角) 进行滤波器设计、相位补偿、谐波分析与无功优化。
    • 意义:PI() 提供标准数学常量,保证公式书写直观、表达严谨。
  • 旋转/振动工况换算

    • 目的:在转速换算(rad/s 与 RPM)、周期性信号相位步长计算中直接使用 π,减少硬编码常量风险。
    • 意义:统一工程计算口径,提高可维护性与跨团队理解成本。
  • 测试与可视化

    • 目的:在报表或快速诊断 SQL 中构造标准角度/弧度换算与三角函数校验表达式。
    • 意义:便于数据侧快速验证算法假设与阈值。

注意事项

  • PI() 为零参常量函数,结果为 DOUBLE。
  • 与聚合列同选时需遵循 SQL 分组规则。

关于 TDengine

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

相关推荐
一只小白0001 小时前
数据库对象实例化流程模板 + 常见错误
数据库
一江寒逸2 小时前
零基础从入门到精通MySQL(下篇):精通篇——吃透索引底层、锁机制与性能优化,成为MySQL实战高手
数据库·mysql·性能优化
紧固视界2 小时前
2026上海紧固件专业展,紧固件设备集中展示平台
大数据·人工智能·上海紧固件展·紧固件展·上海紧固件专业展
DevOpenClub2 小时前
全国三甲医院主体信息 API 接口
java·大数据·数据库
一勺菠萝丶2 小时前
管理后台使用手册在线预览与首次登录引导弹窗实现
java·前端·数据库
无忧智库2 小时前
某大型银行“十五五”金融大模型风控与智能投顾平台建设方案深度解读(WORD)
数据库·金融
爱码小白2 小时前
数据库多表命名的通用规范
数据库·python·mysql
大喵桑丶2 小时前
ZABBIX7二次开发AI监控数据调取杂记
大数据·人工智能·python
huohuopro2 小时前
Hbase伪分布式远程访问配置
数据库·分布式·hbase
DX_水位流量监测2 小时前
德希科技在线多参数七参传感器使用说明
大数据·水质监测·水质传感器·水质厂家·供水水质监测·在线多参数水质分析仪·水质七参