zoukankan      html  css  js  c++  java
  • 5.InfluxDB-InfluxQL基础语法教程--WHERE子句

    本文翻译自官网,官网地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/)

    WHERE子句

    语法:

    SELECT_clause FROM_clause WHERE <conditional_expression> [(AND|OR) <conditional_expression> [...]]
    

    :在WHERE子句中,支持在fields, tags, and timestamps上进行条件表达式的运算。
    :在InfluxDB的WHERE子句中,不支持使用 OR 来指定不同的time区间,如下面的sql将会返回空:

    SELECT * FROM "absolutismus" WHERE time = '2016-07-31T20:07:00Z' OR time = '2016-07-31T23:07:17Z'
    

    Fields

    语法如下:

    field_key <operator> ['string' | boolean | float | integer]
    

    在WHERE子句中,支持对string, boolean, float 和 integer类型的field values进行比较。

    注意在WHERE子句中,如果是string类型的field value,一定要用单引号括起来。如果不适用引号括起来,或者使用的是双引号,将不会返回任何数据,有时甚至都不报错!

    WHERE支持的运算符如下:

    Operator Meaning
    = equal to
    <> not equal to
    != not equal to
    > greater than
    >= greater than or equal to
    < less than
    <= less than or equal to

    支持的更多运算符详见: Arithmetic Operations, Regular Expressions

    Tags

    语法如下:

    tag_key <operator> ['tag_value']
    

    对于在WHERE子句中的tag values,也要用单引号括起来。如果不用引号括起来,或者使用双引号,则查询不会返回任务数据。甚至不会报错。

    Tag支持的运算符如下:

    Operator Meaning
    = equal to
    <> not equal to
    != not equal to

    还支持正则运算: Regular Expressions

    Timestamps

    对于大部分的SELECT 语句来说,默认的时间区间是1677-09-21 00:12:43.145224194 到 2262-04-11T23:47:16.854775806Z UTC.
    对于有GROUP BY time() 的SELECT 语句,默认的时间区间是1677-09-21 00:12:43.145224194 UTC 到 now()。

    Time Syntax 小节将会介绍如何在WHERE子句中指定时间 区间。


    WHERE示例sql

    1. Select data that have specific field key-values

    2. Select data that have a specific string field key-value

      InfluxQL requires single quotes around string field values in the WHERE clause.

    3. Select data that have a specific field key-value and perform basic arithmetic

    4. Select data that have a specific tag key-value

      InfluxQL requires single quotes around tag values in the WHERE clause.

    5. Select data that have specific field key-values and tag key-values

      The WHERE clause supports the operators AND and OR, and supports separating logic with parentheses.

    1. Select data that have specific timestamps

      该sql将查询h2o_feet中在7天以内的所有数据

    关于WHERE语句的常见疑问

    问题 :where子句查询意外地未返回任何数据。

    :通常情况,出现该问题是因为在WHERE子句中没有对tag values或string类型的field values使用单引号括起来的缘故。对于WHERE子句中的tag values或string类型的field values,如果没有用引号括起来,或者是用的双引号,这种时候,查询不会返回任何结果,有时甚至也不会报错。
    在下面的示例sql中,对tag value的引号使用做说明。第一个sql没有对tag value使用引号,第二个sql对tag value使用了双引号,第三个sql则对tag value使用了单引号。可以看到,第一和第二个sql都没有返回任何查询结果,而第三个sql返回了预期中的结果。

    在下面的sql对string类型的field value的引号情况做说明,其中field value为“at or greater than 9 feet”。第一个sql没有对field value使用引号,第二个sql对field value使用了双引号,第三个sql则对field value使用了单引号。可以看到,第一个sql报错了,因为field valus中包含了空格。第二个sql虽然没报错,但是查询结果为空。第三个sql返回了预期中的结果。

  • 相关阅读:
    MFC添加图标到托盘
    MFC中CString转int,double
    c语言练习13——打印出所有的“水仙花数”
    c语言练习12——判断101-200 之间有多少个素数,并输出所有素数
    c语言练习11——兔子问题
    c语言练习10——输出国际象棋棋盘
    c语言练习9——打印楼梯和笑脸
    c语言练习8——输出9*9 乘法表
    c语言练习7——输出特殊图案
    c语言练习6——用*号输出字母C的图案
  • 原文地址:https://www.cnblogs.com/suhaha/p/11692210.html
Copyright © 2011-2022 走看看