MODE¶
expr1 内の値の中で最も頻度の高い値を返します。NULL 値は無視されます。すべての値が NULLの場合、または0行がある場合、関数は NULLを返します。
構文¶
集計関数
ウィンドウ関数
引数¶
expr1この式は、最も頻度の高い値を見つけるために検索される値を生成します。式は、次のデータ型のいずれかになります。
BINARY
BOOLEAN
DATE
FLOAT
INTEGER
NUMBER
TIMESTAMP (TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZ)
VARCHAR
VARIANT
この関数は、次のデータ型をサポートしていません。
ARRAY
GEOGRAPHY
OBJECT
expr2データをグループに分割するオプションの式です。出力には、各グループ/パーティションの最も頻度の高い値が含まれます。
戻り値¶
返される値のデータ型は、入力式のデータ型と同じです。
使用上の注意¶
最も頻度の高い値が同じ値である場合(2つ以上の値が互いに同じ頻度で、他の値よりも頻繁に発生する場合)、 MODE はそれらの値の1つを返します。
DISTINCT はこの関数ではサポートされていません。
NULL が最も頻繁な値であっても、関数は NULL を返しません(すべての値が NULLである場合を除く)。
この関数がウィンドウ関数として呼び出される場合、以下はサポートされていません。
OVER 句内の ORDER BY 句。
明示的なウィンドウフレーム。
例¶
次のコードは、 MODE の使用方法を示しています。
テーブルとデータを作成します。
列 v の MODE 値を取得します。行がないため、関数は NULL を返します。
いくつかの行を挿入します。
MODE 関数は、最も頻度の高い値 10 を返します。
さらにいくつかの行を挿入します。
これで最も頻繁に使用される値は2つになりました。MODE 関数は、値 10 を選択します。
NULL の値を持つ行を挿入します。
各グループの MODE 値を取得します。グループ k = 3 には NULL の値しか含まれていないため、そのグループの返される値は NULL であることに注意してください。
MODE 関数は、 OVER 句を使用する基本的なウィンドウ関数として使用することもできます。