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

  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. list列表和tuple、条件判断、循环、dict和set、调用函数、定义函数

    1.list列表是有序的可变的列表,可以进通过append()方法末尾添加,通过pop删除末尾以及根据索引pop(i)来删除指定索引对应的元素 通过给指定的列表元素赋值更改元素值,通过列表的索引查看元 ...

  2. java项目 学生成绩管理系统 (源码+数据库文件)

    ​ 需要的私信我 备注来意:项目名称 来了就点个赞再走呗,即将毕业的兄弟有福了 文章底部获取源码 java项目  学生成绩管理 (源码+数据库文件)技术框架:java+springboot+vue+m ...

  3. Locust 界面简介(非使用级)

    一.认识Locust 1.简介 Locust是一款易于使用的分布式负载测试工具,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gevent使用轻量级过程(即在 ...

  4. NC23054 华华开始学信息学

    题目链接 题目 题目描述 因为上次在月月面前丢人了,所以华华决定开始学信息学.十分钟后,他就开始学树状数组了.这是一道树状数组的入门题: 给定一个长度为 \(N\) 的序列 \(A\) ,所有元素初值 ...

  5. 第139篇:JS数组常用方法(map(),reduce(),foreach())

    好家伙,本篇为MDN文档数组方法的学习笔记 Array.prototype.reduce() - JavaScript | MDN (mozilla.org) 数组方法这块的知识缺了,补一下   1. ...

  6. 模块 ""element-plus"" 没有导出的成员 "ElMessage"。你是想改用 "import ElMessage from "element-plus"" 吗?

    背景:在使用Element Plus写demo时,导入ElMessage组件出现 [模块 ""element-plus"" 没有导出的成员 "ElMe ...

  7. 2022-08-09:以下go语言代码输出什么?A:否,会 panic;B:是,能正确运行;C:不清楚,看投票结果。 package main import ( “fmt“ “syn

    2022-08-09:以下go语言代码输出什么?A:否,会 panic:B:是,能正确运行:C:不清楚,看投票结果. package main import ( "fmt" &qu ...

  8. 2020-11-08:在Mysql中,三个字段A、B、C的联合索引,查询条件是B、A、C,会用到索引吗?

    福哥答案2020-11-08: 会走索引,原因是mysql优化器会把BAC优化成ABC. CREATE TABLE `t_testabc2` ( `id` int(11) NOT NULL AUTO_ ...

  9. 2021-06-23:给定一个数组arr,代表每个人的能力值。再给定一个非负数k,如果两个人能力差值正好为k,那么可以凑在一起比赛。一局比赛只有两个人,返回最多可以同时有多少场比赛。

    2021-06-23:给定一个数组arr,代表每个人的能力值.再给定一个非负数k,如果两个人能力差值正好为k,那么可以凑在一起比赛.一局比赛只有两个人,返回最多可以同时有多少场比赛. 福大大 答案20 ...

  10. Java网络编程----通过实现简易聊天工具来聊聊NIO

    前文我们说过了BIO,今天我们聊聊NIO.NIO 是什么?NIO官方解释它为New lO,由于其特性我们也称之为,Non-Blocking IO.这是jdk1.4之后新增的一套IO标准.为什么要用NI ...