zoukankan      html  css  js  c++  java
  • influxdb基本操作

    influxDB-查询操作

    转自:https://www.cnblogs.com/Bluebells/p/14120368.html

    复制代码
     1 #----综合使用
     2 书写顺序
     3 select distinct * from '表名' where '限制条件'  group by '分组依据' having '过滤条件' order by  limit '展示条数'
     4 执行顺序
     5 from       -- 查询
     6 where      -- 限制条件
     7 group by   -- 分组
     8 having     -- 过滤条件
     9 order by   -- 排序
    10 limit      -- 展示条数
    11 distinct   -- 去重
    12 select     -- 查询的结果
    复制代码

    1.查询数据表weather 的所有记录:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select from weather
    name: weather
    time altitude area humidity temperature
    ---- -------- ---- -------- -----------
    1607604432455278300 1001 南 -5 10
    1607656595672442800 1000 东 -4 9
    1607656662027484500 1001 南 -5 11
    1607656706278952000 999 南 -5 11
    1607656751612223600 1002 西 -2 11
    1607656799728402900 1003 东 -2 11

    2.按条件查询

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #查询temperature=11的数据
     
    select from weather where temperature=11
    name: weather
    time                altitude area humidity temperature
    ----                -------- ---- -------- -----------
    1607656662027484500 1001     南    -5       11
    1607656706278952000 999      南    -5       11
    1607656751612223600 1002     西    -2       11
    1607656799728402900 1003     东    -2       11
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #查询altitude,temperature两列的数据
    select altitude,temperature from weather
    name: weather
    time                altitude temperature
    ----                -------- -----------
    1607604432455278300 1001     10
    1607656595672442800 1000     9
    1607656662027484500 1001     11
    1607656706278952000 999      11
    1607656751612223600 1002     11
    1607656799728402900 1003     11

    3.排序

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #按最新时间排序
    select from weather order by time desc
    name: weather
    time                altitude area humidity temperature
    ----                -------- ---- -------- -----------
    1607656799728402900 1003     东    -2       11
    1607656751612223600 1002     西    -2       11
    1607656706278952000 999      南    -5       11
    1607656662027484500 1001     南    -5       11
    1607656595672442800 1000     东    -4       9
    1607604432455278300 1001     南    -5       10
     
    #按最早时间排序
    select from weather order by time asc
    name: weather
    time                altitude area humidity temperature
    ----                -------- ---- -------- -----------
    1607604432455278300 1001     南    -5       10
    1607656595672442800 1000     东    -4       9
    1607656662027484500 1001     南    -5       11
    1607656706278952000 999      南    -5       11
    1607656751612223600 1002     西    -2       11
    1607656799728402900 1003     东    -2       11

    4.去重 (distinct)

    复制代码
    > select distinct humidity from weather
    name: weather
    time distinct
    ---- --------
    0    -5
    0    -4
    0    -2
    复制代码

    5.group by

    select 查询字段1,查询字段2,... from 表名
          where 过滤条件
          group by分组依据  # 分组后取出的是每个组的第一条数据
    复制代码
    > select * from weather group by area
    name: weather
    tags: area=东
    time                altitude humidity temperature
    ----                -------- -------- -----------
    1607656595672442800 1000     -4       9
    1607656799728402900 1003     -2       11
    
    name: weather
    tags: area=南
    time                altitude humidity temperature
    ----                -------- -------- -----------
    1607604432455278300 1001     -5       10
    1607656662027484500 1001     -5       11
    1607656706278952000 999      -5       11
    
    name: weather
    tags: area=西
    time                altitude humidity temperature
    ----                -------- -------- -----------
    1607656751612223600 1002     -2       11
    复制代码

    6.聚合

     ①count()函数

    返回一个(field)字段中的非空值的数量。

    SELECT COUNT(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

    > select count(humidity) from weather
    name: weather
    time count
    ---- -----
    0    6

    ②MEAN() 函数

    返回一个字段(field)中的值的算术平均值(平均值)。字段类型必须是长整型或float64。

    语法格式:SELECT MEAN(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

    > SELECT MEAN(humidity) from weather
    name: weather
    time mean
    ---- ----
    0    -3.8333333333333335

    ③MEDIAN()函数

    从单个字段(field)中的排序值返回中间值(中位数)。中值是在一组数值中居于中间的数值。字段值的类型必须是长整型或float64格式。

    语法:SELECT MEDIAN(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

    > SELECT MEAN(humidity) from weather
    name: weather
    time mean
    ---- ----
    0    -3.8333333333333335

    ④SPREAD()函数

    返回字段的最小值和最大值之间的差值。数据的类型必须是长整型或float64。

    语法:SELECT SPREAD(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

    > select spread(humidity) from weather
    name: weather
    time spread
    ---- ------
    0    3

    ⑤SUM()函数

    返回一个字段中的所有值的和。字段的类型必须是长整型或float64。

    语法:SELECT SUM(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>

    > select sum(humidity) from weather
    name: weather
    time sum
    ---- ---
    0    -23

    ⑥INTEGRAL()函数

    返回曲线

    语法:SELECT INTEGRAL( [ * | <field_key> | /<regular_expression>/ ] [ , <unit> ] ) [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] 

    > select INTEGRAL(temperature) from weather
    name: weather
    time integral
    ---- --------
    0    497728.82358215

    ⑦distinc()函数

    复制代码
    > select distinct(temperature) from weather
    name: weather
    time distinct
    ---- --------
    0    10
    0    9
    0    11
    复制代码

    7.limit限制条数

    复制代码
    #显示一条信息
    > select * from weather limit 1
    name: weather
    time                altitude area humidity temperature
    ----                -------- ---- -------- -----------
    1607604432455278300 1001     南    -5       10
    
    #limit 10 offset 15,就是从第15行开始之后的10条数据
    > select * from weather limit 2 offset 2
    name: weather
    time                altitude area humidity temperature
    ----                -------- ---- -------- -----------
    1607656662027484500 1001     南    -5       11
    1607656706278952000 999      南    -5       11
    复制代码

    8.or

    influxDB中没有in的操作,但是有or。对于习惯了mysql的in来说,用or就需要在代码中循环了。

    复制代码
    > select * from weather where altitude=1001 or temperature=11
    name: weather
    time                altitude area humidity temperature
    ----                -------- ---- -------- -----------
    1607656662027484500 1001     南    -5       11
    1607656706278952000 999      南    -5       11
    1607656751612223600 1002     西    -2       11
    1607656799728402900 1003     东    -2       11
    复制代码

    9.模糊查询

    复制代码
    > select * from test
    name: test
    time                app count host      monitor_name num
    ----                --- ----- ----      ------------ ---
    1585897703920290000     1     127.0.0.1 test         
    1585897983909417000 ios 2     127.0.0.1 test1        3
    1585898383503216000 ios 2     127.0.0.1 test1        3
    1585901694441000000 ios 2     127.0.0.1 app1         3
    1585901704179677000 ios 2     127.0.0.1 ios1         3
    ## =~/给定字段/ 包含指定字段的
    > select * from test where monitor_name =~/app/
    name: test
    time                app count host      monitor_name num
    ----                --- ----- ----      ------------ ---
    1585901694441000000 ios 2     127.0.0.1 app1         3
    ##=~/^给定字段/ 以指定字段开始的
    > select * from test where monitor_name =~/^app/
    name: test
    time                app count host      monitor_name num
    ----                --- ----- ----      ------------ ---
    1585901694441000000 ios 2     127.0.0.1 app1         3
    ##=~/给定字段$/ 以指定字段结尾的
    > select * from test where monitor_name =~/p1$/
    name: test
    time                app count host      monitor_name num
    ----                --- ----- ----      ------------ ---
    1585901694441000000 ios 2     127.0.0.1 app1         3
    复制代码

    10.展示tag

    > show tag keys from weather
    name: weather
    tagKey
    ------
    altitude
    area
    复制代码
    #查询单个tag的value值
    
    #查询所以tag为altitude的value的值
    > show tag values from weather with key="altitude"
    name: weather
    key      value
    ---      -----
    altitude 1000
    altitude 1001
    altitude 1002
    altitude 1003
    altitude 999
    复制代码
    生命的意义在于奉献, 解决各种问题
  • 相关阅读:
    vim cheat
    latex base
    latex font
    lstings
    使用React 如何设计 模板自定义的框架
    react hooks 的更进一步适应性使用
    IDEA反编译jar包源码
    Redis Lua实战
    Spring AOP拦截并打印controller层请求日志
    漏桶算法和令牌桶算法的区别
  • 原文地址:https://www.cnblogs.com/regit/p/14487675.html
Copyright © 2011-2022 走看看