すべてのプロダクト
Search
ドキュメントセンター

Time Series Database:関数の一般的な構文

最終更新日:Jan 14, 2025

このトピックでは、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_watmode_wat を返します。AS 句が含まれていない場合、このクエリは出力フィールドキーとして medianmode を返します。

> 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 関数を追加します。