このトピックでは、InfluxQL 関数の一般的な構文について説明します。
SELECT 文での複数の関数の指定
構文
SELECT <function>(),<function>() FROM_clause [...]説明
SELECT 文では、複数の関数をカンマ(,)で区切ります。この構文は、TOP() 関数と BOTTOM() 関数を除くすべての InfluxQL 関数に適用されます。TOP() 関数と BOTTOM() 関数は、SELECT 文で他の関数と組み合わせて使用することはできません。
例 1:クエリを使用してフィールド値の平均値と中央値を計算する
> SELECT MEAN("water_level"),MEDIAN("water_level") FROM "h2o_feet"
name: h2o_feet
time mean median
--------------
1970-01-01T00:00:00Z4.4421070258225224.124このクエリは、water_level フィールドキーのフィールド値の平均値と中央値を返します。
例 2:クエリを使用して 2 つのフィールドキーの最も頻度の高いフィールド値を取得する
> SELECT MODE("water_level"),MODE("level description") FROM "h2o_feet"
name: h2o_feet
time mode mode_1
--------------
1970-01-01T00:00:00Z2.69 between 3 and 6 feetこのクエリは、water_level フィールドキーの最も頻度の高いフィールド値と level description フィールドキーの最も頻度の高いフィールド値を返します。water_level フィールドキーの結果は mode 列に表示され、level description フィールドの結果は mode_1 列に表示されます。各出力列の名前は、クエリ結果で一意である必要があります。そのため、2 番目の列 mode の名前は mode_1 に変更されます。
出力列の名前を指定する方法の詳細については、「出力フィールドキーの名前変更」をご参照ください。
例 3:クエリを使用して最大フィールド値と最小フィールド値を取得する
> SELECT MIN("water_level"), MAX("water_level")[...]
name: h2o_feet
time min max
----------
1970-01-01T00:00:00Z-0.619.964このクエリは、water_level フィールドキーの最大フィールド値と最小フィールド値を返します。
注:このクエリは、1970-01-01T00:00:00Z タイムスタンプを返します。このタイムスタンプは、InfluxDB® の TSDB のヌルタイムスタンプです。MIN() と MAX() はセレクター関数です。SELECT 文にセレクター関数が 1 つだけ含まれている場合は、特定のタイムスタンプが返されます。MIN() 関数と MAX() 関数は、次の例に示すように、2 つの異なるタイムスタンプを返します。そのため、システムは 2 つのタイムスタンプをヌルタイムスタンプで上書きします。
> SELECT MIN("water_level") FROM "h2o_feet"
name: h2o_feet
time min
-------
2015-08-29T14:30:00Z-0.61<---Timestamp1
> SELECT MAX("water_level") FROM "h2o_feet"
name: h2o_feet
time max
-------
2015-08-29T07:24:00Z9.964<---Timestamp2出力フィールドキーの名前変更
構文
SELECT <function>() AS <field_key>[...]説明
デフォルトでは、クエリ結果は、関数で指定されたフィールドキーの関連セクションに表示されます。 AS 句を使用して、クエリで出力フィールドキーの名前を指定できます。
例 1:出力フィールドキーを指定する
> SELECT MEAN("water_level") AS "dream_name" FROM "h2o_feet"
name: h2o_feet
time dream_name
--------------
1970-01-01T00:00:00Z4.442107025822522このクエリは、water_level フィールドキーの平均フィールド値を返し、出力フィールドキーの名前を dream_name に変更します。AS 句が含まれていない場合、このクエリは出力フィールドキーとして mean を返します。
> SELECT MEAN("water_level") FROM "h2o_feet"
name: h2o_feet
time mean
--------
1970-01-01T00:00:00Z4.442107025822522例 2:複数の関数の出力フィールドキーを指定する
> SELECT MEDIAN("water_level") AS "med_wat",MODE("water_level") AS "mode_wat" FROM "h2o_feet"
name: h2o_feet
time med_wat mode_wat
-------------------
1970-01-01T00:00:00Z4.1242.69このクエリは、water_level フィールドキーのフィールド値の中央値と、water_level フィールドキーの最も頻度の高いフィールド値を返します。このクエリは、出力フィールドキーの名前を変更し、出力フィールドキーとして med_wat と mode_wat を返します。AS 句が含まれていない場合、このクエリは出力フィールドキーとして median と mode を返します。
> SELECT MEDIAN("water_level"),MODE("water_level") FROM "h2o_feet"
name: h2o_feet
time median mode
--------------
1970-01-01T00:00:00Z4.1242.69データが報告されない時間間隔の戻り値を変更する
デフォルトでは、InfluxQL 関数と GROUP BY time() 句を含むクエリは、ヌル値を返します。これは、関連する時間間隔でデータが報告されない場合に発生します。ヌル値を取得したくない場合は、クエリの fill() 句の末尾に GROUP BY 関数を追加します。