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

TDengine 数学函数 DEGRESS 用户手册

在这里插入图片描述

DEGREES

DEGREES(expr)

功能说明

将弧度值转换为角度值。

版本

v3.3.3.0

返回结果类型

DOUBLE。

适用数据类型

数值类型(TINYINT、SMALLINT、INT、BIGINT、FLOAT、DOUBLE 及其无符号类型)。

嵌套子查询支持

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

适用于

表和超级表。

使用说明

  • expr 为 NULL,返回 NULL。
  • 转换公式:degree = radian × 180 / π。
  • 只能与普通列、选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
  • 支持与其他数学函数组合使用。

使用示例

假设有以下智能电表表结构:

CREATE DATABASE power;
USE power;CREATE STABLE meters (ts TIMESTAMP,current FLOAT,voltage INT,phase FLOAT
) TAGS (location VARCHAR(64),groupId INT
);CREATE TABLE d1001 USING meters TAGS ('California.SanFrancisco', 1);
基础示例

示例 1: 常量计算

taos> SELECT DEGREES(0);degrees(0)        |
==========================0.000000000000000 |taos> SELECT DEGREES(1);degrees(1)        |
==========================57.295779513082321 |taos> SELECT DEGREES(1.5);degrees(1.5)       |
==========================85.943669269623481 |taos> SELECT DEGREES(PI());degrees(pi())       |
============================180.000000000000000 |

示例 2: 负数转换

taos> SELECT DEGREES(-1);degrees(-1)        |
==========================-57.295779513082321 |taos> SELECT DEGREES(-1.5);degrees(-1.5)       |
==========================-85.943669269623481 |

示例 3: NULL 值处理

taos> SELECT DEGREES(NULL);degrees(null)      |
==========================NULL                    |
智能电表场景示例

示例 4: 转换相位弧度为角度

-- 插入测试数据,phase 字段存储弧度值
INSERT INTO d1001 VALUES ('2018-10-03 14:38:05.000', 10.3, 220, 0.523599),('2018-10-03 14:38:15.000', 12.6, 220, 0.785398),('2018-10-03 14:38:16.800', 11.8, 221, 1.047198);-- 将相位从弧度转换为角度
taos> SELECT ts, phase, DEGREES(phase) AS phase_degree FROM d1001;ts          |   phase   |    phase_degree     |
==========================================================2018-10-03 14:38:05 |  0.523599 |      30.000057296  |2018-10-03 14:38:15 |  0.785398 |      45.000011459  |2018-10-03 14:38:16 |  1.047198 |      60.000057296  |

示例 5: 与三角函数组合使用

-- 计算电流对应角度的正弦值的反函数角度
taos> SELECT DEGREES(ASIN(current/100)) FROM d1001 WHERE ABS(current) <= 100;-- 计算 sin 值再转换为角度
taos> SELECT current, SIN(current) AS sin_val,DEGREES(SIN(current)) AS sin_degrees FROM d1001 LIMIT 3;

示例 6: 算术运算

-- 角度加法
taos> SELECT DEGREES(1) + 1;degrees(1) + 1  |
==================58.295779513082 |-- 角度减法
taos> SELECT DEGREES(1) - 1;degrees(1) - 1  |
==================56.295779513082 |-- 角度乘法
taos> SELECT DEGREES(1) * 2;degrees(1) * 2   |
===================114.591559026165 |-- 角度除法
taos> SELECT DEGREES(1) / 2;degrees(1) / 2  |
==================28.647889756541 |

示例 7: 与其他数学函数嵌套

-- ABS + DEGREES
taos> SELECT DEGREES(ABS(-10));degrees(abs(-10))     |
============================572.957795130823210 |-- DEGREES + POW
taos> SELECT POW(DEGREES(10), 2);pow(degrees(10), 2)    |
============================328231.636532807860 |-- DEGREES + SQRT
taos> SELECT SQRT(DEGREES(10));sqrt(degrees(10))     |
============================23.949533969863897 |-- DEGREES + CAST
taos> SELECT CAST(DEGREES(10) AS INT);cast(degrees(10) as int) |
===========================572 |

示例 8: 反向验证(RADIANS)

-- 验证 DEGREES 和 RADIANS 互为反函数
taos> SELECT DEGREES(RADIANS(90));degrees(radians(90)) |
=======================90.000000000000 |taos> SELECT DEGREES(ATAN(1));degrees(atan(1))  |
====================45.000000000 |

示例 9: 在表查询中使用

-- 从表中读取并转换
taos> SELECT DEGREES(phase) FROM d1001 ORDER BY ts LIMIT 10;-- 与聚合函数分开使用
taos> SELECT ts, DEGREES(phase) FROM (SELECT ts, phase FROM d1001) ORDER BY ts;

示例 10: 大数值转换

taos> SELECT DEGREES(1000000);degrees(1000000)      |
============================57295779.513082321286 |

实际生产场景应用

场景 1: 电力系统 - 相位角监测

-- 将相位从弧度转换为角度,便于工程人员理解
SELECT tbname,ts,phase AS phase_radian, DEGREES(phase) AS phase_degree, CASE WHEN DEGREES(phase) < 30 THEN '相位正常' WHEN DEGREES(phase) < 60 THEN '相位偏移' ELSE '相位严重偏移' END AS status 
FROM meters 
WHERE ts >= NOW - 1h 
ORDER BY ts DESC;

场景 2: 三相电分析 - 角度计算

-- 计算三相电的相位角差(假设有三个相位字段)
SELECT ts,location,DEGREES(phase1) AS phase1_deg,DEGREES(phase2) AS phase2_deg,DEGREES(phase3) AS phase3_deg,ABS(DEGREES(phase1) - DEGREES(phase2)) AS phase_diff_12,ABS(DEGREES(phase2) - DEGREES(phase3)) AS phase_diff_23
FROM meters
WHERE ts >= NOW - 1d;

场景 3: 设备健康监测 - 角度趋势分析

-- 统计每小时平均相位角度
SELECT _wstart AS time_window,AVG(DEGREES(phase)) AS avg_phase_degree,MAX(DEGREES(phase)) AS max_phase_degree,MIN(DEGREES(phase)) AS min_phase_degree,STDDEV(DEGREES(phase)) AS phase_stddev 
FROM meters 
WHERE ts >= NOW - 7d 
INTERVAL(1h);

场景 4: 数据可视化 - 角度归一化

-- 将弧度值归一化为 0-360 度范围
SELECT tbname,ts,phase,MOD(DEGREES(phase), 360) AS normalized_degree 
FROM meters 
WHERE ts >= NOW - 1h 
ORDER BY ts;

注意事项

  • 输入范围:DEGREES 函数可以接受任意实数作为输入,没有范围限制。
  • 精度问题:由于浮点运算的精度限制,极大或极小的输入值可能导致精度损失。
  • 性能:DEGREES 是标量函数,对每一行数据独立计算,性能开销较小。
  • 不支持聚合混用:不能与聚合函数(如 SUM、AVG)直接组合使用,需使用子查询。
  • 角度范围:转换后的角度值没有限制,可能超出 0-360 度范围,需要根据实际应用场景进行归一化处理。

数学关系

  • DEGREES(x) = x × 180 / π
  • DEGREES(PI()) = 180
  • DEGREES(2 × PI()) = 360
  • DEGREES(PI() / 2) = 90
  • DEGREES(-PI() / 2) = -90
  • DEGREES(RADIANS(x)) = x(互为反函数)

相关函数

  • RADIANS: 将角度转换为弧度,与 DEGREES 互为反函数
  • SIN: 正弦函数,输入为弧度
  • COS: 余弦函数,输入为弧度
  • TAN: 正切函数,输入为弧度
  • ASIN: 反正弦函数,返回弧度
  • ACOS: 反余弦函数,返回弧度
  • ATAN: 反正切函数,返回弧度
  • PI: 返回圆周率 π

关于 TDengine

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

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

相关文章:

  • 源码:Oracle AWR报告之Top 10 Foreground Events by Total Wait Time
  • 告别繁琐坐标,让公式“说人话”:Excel结构化引用完全指南
  • 【AI论文】CoDA:面向协作数据可视化的智能体系统
  • 从AAAI2025中挑选出对目标检测有帮助的文献——第六期
  • 【深度学习】反向传播
  • 网站开发交接新闻源发稿平台
  • 滴答时钟延时
  • 【C++篇】:ServiceBus RPC 分布式服务总线框架项目
  • 后训练——Post-training技术介绍
  • 获取KeyStore的sha256
  • Linux (5)| 入门进阶:Linux 权限管理的基础规则与实践
  • 常见压缩包格式详解:区别及在不同系统中的解压方式
  • 【数学 进制 数位DP】P9362 [ICPC 2022 Xi‘an R] Find Maximum|普及+
  • .net过滤器和缓存
  • 张家港网站建设培训班电力建设专家答疑在哪个网站
  • 零基础学AI大模型之大模型的“幻觉”
  • 网站快速优化排名排名c语言入门自学零基础
  • MySQL排序规则utf8mb4_0900_ai_ci解析
  • 做网站别名解析的目的是什么同城广告发布平台
  • GPT4Free每日更新的免登录工作AI提供商和模型列表
  • 网站群建设座谈会云浮新增病例详情
  • Proxmox 9 一键更新虚拟机mac
  • C# WPF DataGrid使用Observable<Observable<object>类型作为数据源
  • sem网站建设网站是由多个网页组成的吗
  • redis中的数据类型和适用场景
  • 从字节到网页:HTTP 与 TCP 的底层密码全解析
  • 建设局招标办网站百度seo搜索引擎优化厂家
  • 隧道高清晰广播+紧急电话系统的应用
  • Ubuntu使用图片
  • C# 求圆柱体的周长(Find the perimeter of a cylinder)