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

  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)

influxdb常用sql总结的更多相关文章

  1. InfluxDB从原理到实战 - InfluxDB常用的基础操作

    0x00 基础操作介绍 在本文中将介绍InfluxDB常用的基础操作,帮助读者建立对InfluxDB的感性认识,快速的动手玩起来,持续查询(Continuous Queies).Group by.Se ...

  2. Mysql 常用 SQL 语句集锦

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  3. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

        花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...

  4. 常用SQL[ORACLE]

        1.常用系统函数 2.常用sql语句 3.一些定义和关键字 4.需要注意点   1.常用系统函数 ↑ --decode decode(column,if_value,value,elseif_ ...

  5. Oracle常用SQL查询(2)

    三.查看数据库的SQL 1 .查看表空间的名称及大小 select  t.tablespace_name,  round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ...

  6. Oracle常用SQL查询

    一.ORACLE的启动和关闭 1.在单机环境下要想启动或关闭oracle系统必须首先切换到oracle用户,如下: su - oracle a.启动Oracle系统 oracle>svrmgrl ...

  7. Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  8. 50个常用SQL语句

    50个常用SQL语句 Student(S#,Sname,Sage,Ssex) 学生表  S#学号,主键 Course(C#,Cname,T#) 课程表          C#课程号,主键 SC(S#, ...

  9. 测试常用SQL注入语句大全

    转载自Cracer,标题:<渗透常用SQL注入语句大全>,链接http://www.xxxx.com/?p=2226 1.判断有无注入点 整形参数判断 1.直接加' 2.and 1=1 3 ...

  10. oracle sqlplus及常用sql语句

    常用sql语句 有需求才有动力 http://blog.csdn.net/yitian20000/article/details/6256716 常用sql语句 创建表空间:create tables ...

随机推荐

  1. 面试某大厂,被Channel给吊打了,这次一次性通关channel!

    目录 一 前言 面试题 然后我们进行一下扩展,玩转Channel! 二 解决面试题 1. 介绍一下Channel 2. Channel在go中起什么作用 3. Channel为什么需要两个队列实现 4 ...

  2. RDIFramework.NET开发框架WinForm版新增编码管理

    1.概述 编码管理是企业管理和信息化建设过程中一个至关重要的环节.各信息化系统是通过编码来标识业务对象的,统一的编码方案可以作为各系统的通话语言,也可以为信息化系统的集成提供便利.建设数据编码的基本原 ...

  3. Rust中的智能指针:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak<T>

    Rust中的智能指针是什么 智能指针(smart pointers)是一类数据结构,是拥有数据所有权和额外功能的指针.是指针的进一步发展 指针(pointer)是一个包含内存地址的变量的通用概念.这个 ...

  4. Django框架——可视化界面之数据增删改查、Django请求生命周期、Django路由层、反向解析

    可视化界面之数据增删改查 针对数据对象主键字段的获取可以使用更加方便的 obj.pk获取 在模型类中定义双下str方法可以在数据对象被执行打印操作的时候方便的查看 ''' form表单中能够触发调剂动 ...

  5. Swift Codable协议实战:快速、简单、高效地完成JSON和Model转换!

    前言 Codable 是 Swift 4.0 引入的一种协议,它是一个组合协议,由 Decodable 和 Encodable 两个协议组成.它的作用是将模型对象转换为 JSON 或者是其它的数据格式 ...

  6. SQL Server 2022 AlwaysOn新特性之包含可用性组介绍

    由于技术能力有限,文章仅能进行简要分析和说明,如有不对的地方,请指正,谢谢. SQL Server的容灾功能一直弱于Oracle和MySQL,无法自动同步元数据(用户.登录名.权限.SQL 代理作业. ...

  7. VS2022使用ClickOnce发布程序本地安装.net框架

    因为遇到下面的错误,没有在网上搜到详细解决问题的教程,费了一些时间才解决了问题,特此记录一下,也希望能帮助到其他人. 要在"系统必备"对话框中启用"从与我的应用程序相同的 ...

  8. Prism Sample 7 Modules Code

    例7对注册Module使用了配置命令. 见app.xaml.cs: 1 using Modules.Views; 2 using Prism.Ioc; 3 using Prism.Modularity ...

  9. Linux运维实战项⽬进阶

    项⽬描述 项⽬需求 近年来为适应业务发展的需求,世界500强XX企业准备进⾏⼤规模的电⼦商务建设, 同时,希望能通过Linux平台,利⽤开源技术,来实现⼤型互联⽹电⼦商务⽹站架构建设和业务⽀撑,现要求 ...

  10. 【Dotnet 工具箱】DotNetCorePlugins- 动态加载和卸载 .NET 程序插件

    你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用! 1. DotNetCorePlugins- 动态加载和卸载 .NET 程序插件 DotNetCore ...