Aggregations
count
返回 field value 的个数
1 | SELECT COUNT( [ * | <field_key> | /<regular_expression>/ ] ) [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] |
嵌套使用
1 | SELECT COUNT(DISTINCT( [ * | <field_key> | /<regular_expression>/ ] )) [...] |
distinct
返回不同的 field value
使用问题
问题一:DISTINCT()和INTO子句
在INTO子句中使用DISTINCT()可能会导致TSDB For InfluxDB®覆盖目标measurement中的数据点。DISTINCT()通常返回多个具有相同时间戳的结果;TSDB For InfluxDB®假设在相同序列中并具有相同时间戳的数据点是重复数据点,并简单地用目标measurement中最新的数据点覆盖重复数据点。
INTEGRAL()
返回field value曲线下的面积,即关于field value的积分。
1 | 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] |
MEAN()
返回field value的平均值。
1 | SELECT MEAN( [ * | <field_key> | /<regular_expression>/ ] ) [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] |
MEDIAN()
返回排好序的field value的中位数。
1 | SELECT MEDIAN( [ * | <field_key> | /<regular_expression>/ ] ) [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] |
MODE()
返回field value中出现频率最高的值。
1 | SELECT MODE( [ * | <field_key> | /<regular_expression>/ ] ) [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] |
SPREAD()
返回field value中最大值和最小值之差。
1 | SELECT SPREAD( [ * | <field_key> | /<regular_expression>/ ] ) [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] |
STDDEV()
返回field value的标准差。
1 | SELECT STDDEV( [ * | <field_key> | /<regular_expression>/ ] ) [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] |
SUM()
返回field value的总和。
1 | SELECT SUM( [ * | <field_key> | /<regular_expression>/ ] ) [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] |
Selectors
BOTTOM()
返回最小的N个field value。
1 | SELECT BOTTOM(<field_key>[,<tag_key(s)>],<N> )[,<tag_key(s)>|<field_key(s)>] [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] |
BOTTOM()的常见问题
问题一:BOTTOM()和GROUP BY time()子句同时使用
对于同时带有BOTTOM()和GROUP BY time()子句的查询,将返回每个GROUP BY time()时间间隔的指定个数的数据点。对于大多数GROUP BY time()查询,返回的时间戳表示GROUP BY time()时间间隔的开始时间,但是,带有BOTTOM()函数的GROUP BY time()查询则不一样,它们保留原始数据点的时间戳。
问题二:BOTTOM()和具有少于N个tag value的tag key
使用语法SELECT BOTTOM(
问题三:BOTTOM()、tag和INTO子句
当使用INTO子句但没有使用GROUP BY tag子句时,大多数InfluxQL函数将原始数据中的tag转换为新写入数据中的field。这种行为同样适用于BOTTOM()函数除非BOTTOM()中包含tag key作为参数:BOTTOM(field_key,tag_key(s),N)。在这些情况下,系统会将指定的tag保留为新写入数据中的tag。
FIRST()
详细说明
返回具有最早时间戳的field value。
1 | SELECT FIRST(<field_key>)[,<tag_key(s)>|<field_key(s)>] [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] |
LAST()
返回具有最新时间戳的field value。
详细说明
MAX()
返回field value的最大值。
详细说明
1 | SELECT MAX(<field_key>)[,<tag_key(s)>|<field__key(s)>] [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] |
MIN()
返回field value的最小值。
详细说明
PERCENTILE()
1 | SELECT PERCENTILE(<field_key>, <N>)[,<tag_key(s)>|<field_key(s)>] [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] |
SAMPLE()
返回包含N个field value的随机样本。SAMPLE()使用reservoir sampling来生成随机数据点。
1 | SELECT SAMPLE(<field_key>, <N>)[,<tag_key(s)>|<field_key(s)>] [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] |
语法描述
- SAMPLE(field_key,N): 返回指定field key对应的N个随机选择的 field value。
- SAMPLE(/regular_expression/,N): 返回与正则表达式匹配的每个field key对应的N个随机选择的field value。
- SAMPLE(*,N): 返回在measurement中每个field key对应的N个随机选择的field value。
- SAMPLE(field_key,N),tag_key(s),field_key(s): 返回括号中的field key对应的N个随机选择的field value,以及相关的tag和/或field。
N必须是整数。SAMPLE()支持所有数据类型的field value。