where 演算子

述語の条件を満たす行のサブセットにテーブルをフィルター処理します。

where演算子と filter 演算子は同等です

構文

T| wherePredicate

パラメーター

名前 必須 説明
T string レコードをフィルター処理する表形式の入力。
Predicate string T の各行のブール値に評価される式。

戻り値

Predicatetrue である T 内の行。

注意

すべてのフィルター関数は、null 値と比較すると false を返します。 null 値を処理するクエリを記述するには、特殊な null 対応関数を使用します。

パフォーマンスに関するヒント

  • シンプルな比較を使う ("定数" とは、テーブルに対する定数です。 ("定数" とは、テーブルに対する定数です。now()ago() は適切で、now()を使って割り当てられるスカラー値も同様です)。

    たとえば、where bin(Timestamp, 1d) == ago(1d) よりも where Timestamp >= ago(1d) の方が適切です。

  • 最もシンプルな語句を先頭に配置する: and で連結された複数の句がある場合は、関係する列が 1 つしかない句を先頭に配置します。 そのため、 Timestamp > ago(1d) and OpId == EventId の方が、逆の順序にするよりも適切です。

詳細については、使用可能な String 演算子の概要および使用可能な数値演算子の概要を参照してください。

複雑さによる順序比較

次のクエリは、破損したプロパティを報告し、フラッドであり、開始と終了を異なる場所で行う Storm レコードを返します。

where 演算子はインデックスを使用できないので、2 つの列の比較を最後に配置し、スキャンを強制していることに注意してください。

StormEvents
| project DamageProperty, EventType, BeginLocation, EndLocation
| where DamageProperty > 0
    and EventType == "Flood"
    and BeginLocation != EndLocation 

次の表は、上位 10 件の結果のみを示しています。 完全な出力を表示するには、クエリを実行します。

DamageProperty EventType BeginLocation EndLocation
5000 洪水 フェイエット シティ ローバー
5000 洪水 モリスビル ウエスト ウェインズバーグ
10000 洪水 コープランド・ハリス・グローブ
5000 洪水 グレンフォード マウント ペリー
25000 洪水 イースト セネカ バッファロー エアパーク ARPT
20000 洪水 EBENEZER SLOAN
10000 洪水 BUEL CALHOUN
10000 洪水 グッドホープ ウェスト ミルフォード
5000 洪水 ダンカークの森
20000 洪水 ファーミントン マンニントン

列に文字列が含まれているかどうかを確認する

次のクエリは、任意の列に "cow" という単語が表示される行を返します。

StormEvents
| where * has "cow"