完整教程:TDengine 数学函数 DEGRESS 用户手册

news/2025/11/12 11:13:37/文章来源:https://www.cnblogs.com/yxysuanfa/p/19212961

在这里插入图片描述

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 度范围,需要根据实际应用场景进行归一化处理。

数学关系

相关函数

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

关于 TDengine

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/963165.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多屏开合屏,宜宾高端定制优选,全案交付更高效

在当前多屏开合屏设备快速普及的市场环境中,用户普遍面临需求与产品错配、参数筛选混乱、功能冗余或缺失等选购痛点。尤其在宜宾这类兼具工业制造与数字文旅双重属性的城市,不同行业对屏幕开合结构、响应速度、环境适…

RMAN delete归档报错 specification does not match any archived log in the repository

1、使用这个脚本无法不清理过期的归档[oracle@r7901:/home/oracle]\$ cat /home/oracle/scripts/del_arch.sh#!/bin/bashsource ~/.bash_profiledeltime=`date +"20%y%m%d%H%M%S"`rman target / nocatalog m…

C# 将多个wav格式的文件拼接(合并)成一个文件

1、nuget安装NAudio2、代码实现using NAudio.Wave; using System; using System.Collections.Generic; using System.IO; using System.Linq;namespace SoundWin.Common {public class WavFileMerger{/// <summary&…

2025年11月酵母锌品牌权威榜:五强对比评测与口碑排行解析

很多家长在秋冬换季时发现孩子食欲下降、身高增长放缓,体检报告又提示“锌摄入不足”,于是开始关注“酵母锌”这一相对温和的补锌形式。相比传统无机锌,酵母锌通过生物转化把锌元素嵌进酵母蛋白与多糖矩阵,理论上吸…

《ESP32-S3使用指南—IDF版 V1.6》第四十七章 lwIP初探

第四十七章 lwIP初探 1)实验平台:正点原子DNESP32S3开发板 2)章节摘自【正点原子】ESP32-S3使用指南—IDF版 V1.6 3)购买链接:https://detail.tmall.com/item.htm?&id=768499342659 4)全套实验源码+手册+视…

全连接层属于输入层、输出层还是隐藏层

全连接层本身不固定属于输入层、输出层或隐藏层,它是一种“层的连接结构”,可作为隐藏层或输出层,输入层通常不称为全连接层。 核心定义 全连接层(Fully Connected Layer)的核心是“层内每个神经元与前一层所有神…

2025年益阳移动滑轨屏趋势预测推荐

在当前数字化展示设备市场中,价格透明度已成为用户选购决策的重要依据。据2024年行业调研数据显示,全国范围内规范定价企业占比约为68%,其中价格公示完善度达到“优”级的企业不足四成。这一现状凸显出消费者在采购…

国产化印刷厂视频监控项目实施方案 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

基于STM32F103与A3988驱动芯片的两相四线步进电机控制方案

一、硬件 1. 引脚映射A3988引脚 功能 STM32引脚 说明STEP 步进脉冲 PA0 每脉冲转动一步DIR 方向控制 PA1 高/低电平控制转向ENABLE 使能信号 PA2 低电平有效MS1-MS3 细分设置 PB0-PB2 000=全步,001=半步等VREF 电流设…

2025IT 监控厂商选型指南:5 款高价值运维监控产品推荐,适配数字化转型需求

2025IT 监控厂商选型指南:5 款高价值运维监控产品推荐,适配数字化转型需求$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");文章对比5款主流运维监控系统,…

2025年北京代理记账服务商权威推荐榜单:执照注册资金变更/搭建财务内控/执照代办服务机构精选

在企业精细化管理和合规要求日益提高的背景下,专业可靠的代理记账服务已成为中小企业稳健发展的基石。 代理记账服务不仅帮助企业完成基本的记账报税工作,更通过专业的财务分析和管理建议,助力企业优化财税结构、降…

C# 通过共享内存的方式给python传递一张图片

C# 通过共享内存的方式给Python传递一张图片 简介: 需求是需要传到python中一张图片,然后通过python进行处理,我想到了一种进程间通信的方法,共享内存,我的理解就是开辟一块内存,A向内存里面写数据,B再去读取这…

使用docker安装配置 elasticsearch + kibana

使用docker安装配置 elasticsearch8.18.0 + kibana8.18.0 使用docker-compose文件安装步骤如下:当 compose 文件名为 docker-compose.yaml 时,可以省略 -f 参数。否则所有执行 docker-compose 命令时都需要指定 -f 参…

Magento API文件上传漏洞导致远程代码执行分析

本文详细分析了CVE-2021-36042漏洞,该漏洞影响Magento Commerce 2.4.2及更早版本,攻击者可通过API文件选项上传扩展实现远程代码执行,属于严重级别安全威胁。Magento通过API文件选项上传扩展执行代码 漏洞详情 受影…

Unity实现两种图片马赛克效果

引言需要在选中图片的局部区域时打上马赛克,网上常用的马赛克方式是像素化风格的马赛克,由于选中区域的像素颜色很相近,使用这种马赛克方法达不到需要的效果。最后使用另一种方法——黑白马赛克达到了想要的效果,本…

winform播放声音文件,播完成后自动播放下一个文件

1、nuget安装NAudio 2、代码实现using NAudio.Wave; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks;namespace Sou…

基于OFDM数据符号的多普勒频率估计与移动台速度提取方法

一、核心原理与数学模型 1.1 OFDM信号的多普勒效应 OFDM信号的每个子载波在传输过程中会受到目标运动引起的多普勒频移影响。假设目标径向速度为v,载波频率为fc,则多普勒频移为:c为光速,λ为波长。多普勒频移会导致…

雷池 WAF 免费版实测:小白用 Apache 搭环境,30 分钟护住 API 接口安全

雷池 WAF 免费版实测:小白用 Apache 搭环境,30 分钟护住 API 接口安全作为刚入门的后端小白,我第一次独立开发的城市公交查询 API 就出了状况 —— 接口被匿名工具高频调用,导致服务器带宽连续 3 天超标,用户查询…

opentelemetry全链路初探--python注入

前言 经过上一节,opentelemetry的基本操作都已经融会贯通,但是有位老哥提出疑问?我的代码都已经写完了,为了添加全链路,还需要重构之前的代码吗?那这个代价太大了。那本章就来讨论一下opentelemetry的注入的问题…

三石量化股票数据提取分析报告 - 2025年11月12日

body { font-family: "Microsoft YaHei", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: rgba(51, 51, 51, 1); max-width: 1400px; margin: 0 auto; padding: 20p…