influxdb常用sql总结

简介: influxdb常用sql总结

本文为博主原创,转载请注明出处:

1.登录influxdb

influx -username admin -password "password"

2.查看数据库

##查看有哪些数据库

show databases;


##选中数据库

use database_name;

3.查看表及表结构

##查看所有数据库表
show measurements;
##查看measurement_name有哪些 fields
show field keys from  measurement_name
##查看measurement_name有哪些tag
show tag keys from  measurement_name

4.建表并新增数据

  InfluxDB 使用写入操作来自动创建表。当你向新的测量写入数据时,如果该测量不存在,则会自动创建一个新表。

insert <tbname>,<tags> <values> [timestamp]

  在insert执行语句中,tag与tag、field与field之间用","进行分割,

  tag与field之间用空格分割 tag的value都是String类型,不需要加双引号

   field的String类型数据,需要放在双引号中,否则会报错

  如果需要显示添加时间戳,在filed后添加空格,再添加时间戳

INSERT sensor_data,location=home,device_id=sensor001 temperature=25,humidity=50

  上述写入操作将自动创建一个名为 sensor_data 的表,并将数据写入其中。

5.更新数据

  在 InfluxDB 中,数据是不可变的,因此不能直接更新已有的数据点。如果要更改数据值,需要执行插入操作,并覆盖具有相同时间戳的数据。

  假设要更新 sensor_data 测量中 temperature 字段的值为 26,可以执行以下操作:

INSERT sensor_data,location=home,device_id=sensor001 temperature=26,humidity=50

6.删除表与数据:

  表删除:

DROP MEASUREMENT measurement_name

  根据过滤条件删除数据:  

DELETE FROM sensor_data WHERE location='home' AND device_id='sensor001'

7.group by

  在 InfluxDB 中,group by 只能用于对 tag 相关的字段进行分组,而不能对 field 字段进行分组。这是因为在 InfluxDB 的数据模型中,tag 是用来标识和过滤数据的元数据,而 field 则是实际存储数据的值。

  在查询语句中,将 GROUP BY 关键字与适当的 tag 键名结合使用,以指定要分组的标签。

SELECT <aggregate_function>(<field_key>) FROM <measurement_name> GROUP BY <tag_key>

  示例:

                       

8.时间窗口

  结合 time() 函数以及指定的时间范围,可以在分组查询中创建时间窗口。例如:

GROUP BY time(<interval>)

  其中 <interval> 可以是秒、分钟、小时等单位: interval 可以直接使用时间缩写:如 1d == 1天, 1h == 1小时, 5m = 5分钟, 10s == 10秒,

9.查看tag得字段有哪些值

  不可以使用distinct函数,distinct 函数可以对field生效,但对tag查询会失效

SHOW TAG VALUES FROM measurement WITH KEY = "location" WHERE time > now() - 1h

10.聚合函数

  在进行分组查询时,需要使用适当的聚合函数(如 mean()sum()count() 等)对 field 进行计算。这样可以根据每个分组计算出相应的结果。

##最大值
SELECT SUM(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
##平均值
SELECT MEAN(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
##返回一个字段(field)的唯一值
SELECT DISTINCT(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
##返回一个(field)字段中的非空值的数量
SELECT COUNT(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

11.排序 order by time desc

  influxdb 排序只能用于time 进行排序:升序:order by time asc,降序 order by time desc

select * from tableName order by time asc

12. FILL 数据空处理

  空数据处理 fill(),相当于mysql的IFNULL的作用,但不能指定字段

  给空数据赋予某个值,如下,给是空值的赋予0(可以赋予其它值,如-1、2),只能位于sql所有条件之后

select * from tableName fill(0)

13.模糊查询

  • 以【模糊条件】开头的查询方式
SELECT * FROM "tablename"  where column =~ /^模糊条件/ limit 1000
  • 以【模糊条件】结尾的查询方式
SELECT * FROM "tablename"  where column =~ /模糊条件$/ limit 1000
  • 包含【模糊条件】的查询方式
SELECT * FROM "tablename"  where column =~ /模糊条件/ limit 1000

 

标签: influxdb

目录
相关文章
|
5月前
|
SQL JSON 数据库
influxdb 端点使用http进行sql查询,写数据
influxdb 端点使用http进行sql查询,写数据
284 0
|
6月前
|
SQL 时序数据库
influxdb不能使用in关键字,如何改写SQL
【6月更文挑战第25天】influxdb不能使用in关键字,如何改写SQL
335 0
|
3月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
5月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
134 13
|
5月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
5月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
69 6
|
5月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
457 1
|
5月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
376 3
|
4月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
530 0
|
5月前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
下一篇
DataWorks