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

购买网站空间ftp设计海纳企业网站管理系统源码

购买网站空间ftp设计,海纳企业网站管理系统源码,宝安新桥h5网站建设步骤,网站建设工作进度学习如何使用 SQL 对时间序列数据进行聚合查询,尤其是结合 InfluxDB 3 使用场景: 使用 SQL 聚合数据 一个用于聚合数据的 SQL 查询通常包含以下子句: 必填SELECT:指定要从表中输出的字段、标签和计算结果;或者使用通…

学习如何使用 SQL 对时间序列数据进行聚合查询,尤其是结合 InfluxDB 3 使用场景:


使用 SQL 聚合数据

一个用于聚合数据的 SQL 查询通常包含以下子句:

  • 必填
  • SELECT:指定要从表中输出的字段、标签和计算结果;或者使用通配符 (*) 来选择表中的所有字段和标签。
  • FROM:指定要查询数据的表。
  • WHERE:仅返回满足特定条件的行。例如:时间在某个时间范围内、某个标签具有特定值、或某个字段值高于/低于指定阈值。
  • GROUP BY:将具有相同列值或表达式结果的数据分组。例如:对某个聚合函数的结果进行分组。

为简化描述,在本文中,“聚合”一词泛指对数据集应用聚合函数选择器函数

以下是教你如何对查询数据应用聚合操作的内容:

  • 聚合函数与选择器函数
  • 聚合函数
  • 选择器函数
  • 示例聚合查询

聚合函数与选择器函数

无论是聚合函数还是选择器函数,它们都会从每个 SQL 分组中返回一行结果。例如,如果你使用 GROUP BY room 并在 SELECT 子句中执行一个聚合操作,则结果会包含每个唯一 room 值对应的聚合值。


聚合函数

使用聚合函数来对每组数据中指定列的值进行聚合,并为每组返回一行包含聚合后的值。

查看 SQL 聚合函数列表
函数描述
AVG(column)返回列的平均值
SUM(column)返回列的总和
MIN(column)返回列的最小值
MAX(column)返回列的最大值
COUNT(column)统计非空值的数量
简单聚合查询示例:
SELECT AVG(co) FROM home

选择器函数(Selector Functions)

使用选择器函数来“选择”某列中的一个值。这些函数专为时间序列数据设计。

查看 SQL 选择器函数列表
函数描述
selector_first(value_col, time_col)返回该组中最早时间点的值
selector_last(value_col, time_col)返回该组中最新时间点的值
selector_min(value_col, time_col)返回该组中值最小的那一行的值
selector_max(value_col, time_col)返回该组中值最大的那一行的值
选择器结构体格式

选择器函数返回一个类似 JSON 的结构体(Rust Struct),表示某组中选中的一个时间和值。返回的时间和值取决于函数逻辑。例如:

{time: "2023-01-01T00:00:00Z", value: 72.1}
使用选择器函数

每个选择器函数有两个参数:

  1. 第一个是你要操作的数值列;
  2. 第二个是用于选择逻辑的时间列。

SELECT 子句中执行选择器函数时,可以使用方括号访问结构体的属性:

SELECTselector_first(temp, time)['time'] AS time,selector_first(temp, time)['value'] AS temp,room
FROM home
GROUP BY room

示例聚合查询

执行无分组的聚合

要对指定列中的所有查询值进行聚合:

  • SELECT 子句中使用聚合函数或选择器函数;
  • 不使用 GROUP BY 子句,以避免对数据进行分组。
SELECT avg(co) AS 'average co' FROM home

对分组数据进行聚合

要对分组数据应用聚合或选择器函数:

  • SELECT 子句中使用聚合或选择器函数;
  • SELECT 子句中列出你希望按其分组的列;
  • GROUP BY 子句中使用逗号分隔的列名或表达式进行分组。

注意:

  • GROUP BY 可以使用 SELECT 子句中定义的别名;
  • 如果别名与原始列名相同,GROUP BY 将忽略别名并使用原始列值。
SELECTroom,avg(temp) AS 'average temp'
FROM home
GROUP BY room

按时间间隔下采样数据(Downsampling)

在时间序列数据中,常见的用例是对数据进行按时间区间的聚合。要实现这一点:

  • SELECT 子句中使用 DATE_BIN 函数来计算时间间隔,并生成一个新的时间列;
  • 使用聚合或选择器函数处理其他列;
  • GROUP BY 子句中引用 DATE_BIN(...) 结果(可以通过序号或别名);
  • 添加 ORDER BY 子句来排序结果。
SELECTDATE_BIN(INTERVAL '2 hours', time) AS time,room,selector_max(temp, time)['value'] AS 'max temp',selector_min(temp, time)['value'] AS 'min temp',avg(temp) AS 'average temp'
FROM home
GROUP BY 1, room
ORDER BY room, 1

💡 提示:如果在 GROUP BY 中引用 DATE_BIN(...) 列,请不要使用 time 作为别名,否则可能混淆源表的 time 字段。建议使用 _time 或其他名称。


根据聚合值筛选数据

要在聚合后根据值进行筛选,可以使用 HAVING 子句,它会在数据聚合之后应用条件过滤。

  • WHERE 子句在聚合前应用过滤;
  • HAVING 子句在聚合后应用过滤。
SELECTroom,avg(co) AS 'average co'
FROM home
GROUP BY room
HAVING "average co" > 5

📌 总结

子句用途
SELECT指定输出字段和聚合函数
FROM指定查询来源的表
WHERE在聚合前过滤数据
GROUP BY按照指定列进行分组
HAVING在聚合后过滤分组结果
DATE_BIN()实现基于时间窗口的下采样
selector_*()选择特定时间点的值(如最早、最晚、最大、最小等)

✅ 最佳实践建议

  • ✅ 使用双引号包裹所有表名和字段名,保留大小写敏感性;
  • ✅ 避免在 GROUP BY 中使用与原列同名的别名;
  • ✅ 时间列重命名推荐使用 _time 等新名称;
  • ✅ 在 Grafana 中连接 InfluxDB 3 时,使用 PostgreSQL 数据源插件;
  • ✅ 使用标准 SQL 语法替代 InfluxQL 特有结构。
http://www.dtcms.com/wzjs/592586.html

相关文章:

  • 个人网站如何搭建男科
  • 做字体的网站asp文件怎么做网站
  • 网络公关公司排名广州网站优化公司咨询
  • html5手机网站网页设计与制作设计网页源文件
  • 网站不备案备案公司网站备案需要多久
  • 网站建设的教学设计做海淘的网站
  • 鄂尔多斯网架公司郑州seo关键词优化公司
  • 期货融网站建设做足球经理头像的网站
  • 不同风格的网页江西短视频搜索seo推荐
  • 南通技嘉做网站wordpress直接上传视频
  • 网站精神文明建设专栏云设计工具
  • 怎么做pdf电子书下载网站wordpress4.5
  • 建设部网站预应力资质山西建设工程造价管理协会网站
  • seo神马网站推广器网络规划与设计实用教程
  • 家居企业网站建设公司电商网站开发公司杭州
  • 网站投资设计郑州百度推广代运营公司
  • 网站的百度百科怎么做网站后台维护一般要怎么做
  • 网站建设座谈会做购物网站的步骤
  • 网站建设方案的征求意见室内装潢设计专业培训
  • 福州手机模板建站济南市建设局官网
  • 国美的网站做的怎么样个人养老金
  • h5自适应网站模板义乌制作网站公司
  • 网站 icp备案廊坊森德科技有限公司
  • dede电影网站模板惠喵WordPress
  • 深圳手机网站建设报价wordpress景点展示插件
  • 电子商务网站建设的成本分析自己在家怎么学编程
  • 专业微网站制作车间生产管理软件免费
  • 嘉兴网站模板建站html5 素材网站
  • 杭州网站专业制作品牌推广的目的
  • 高新区做网站的公司别人用我公司营业执照备案做网站