any
導入バージョン: v1.1.0
カラム内で最初に現れた値を選択します。
デフォルトでは、この関数は NULL を返さず、つまり入力カラム内の NULL 値を無視します。
ただし、この関数を RESPECT NULLS 修飾子付きで使用すると、NULL かどうかにかかわらず最初の値を返します。
実装の詳細
場合によっては、実行順序を前提にできます。
これは、SELECT が ORDER BY を使用するサブクエリから取得される場合に当てはまります。
SELECT クエリに GROUP BY 句または 1 つ以上の集約関数がある場合、ClickHouse では (MySQL とは異なり) SELECT、HAVING、ORDER BY の各句にあるすべての式は、キーまたは集約関数から計算されている必要があります。
言い換えると、テーブルから選択される各カラムは、キーとして使用するか、集約関数の中で使用する必要があります。
MySQL のような動作を実現するには、他のカラムを any 集約関数に含めることができます。
構文
any(column)[ RESPECT NULLS]別名: any_value, first_value
引数
column— カラム名。Any
戻り値
最初に取得された値を返します。
Any
例
使用例
CREATE TABLE tab (city Nullable(String)) ENGINE=Memory;
INSERT INTO tab (city) VALUES (NULL), ('Amsterdam'), ('New York'), ('Tokyo'), ('Valencia'), (NULL);
SELECT any(city), anyRespectNulls(city) FROM tab;┌─any(city)─┬─anyRespectNulls(city)─┐
│ Amsterdam │ ᴺᵁᴸᴸ │
└───────────┴───────────────────────┘