このトピックでは、条件式の構文について説明し、条件式の使用方法の例を示します。

表現構文説明
CASE WHENステートメントcondition1result1の場合

[条件2result2のとき]

[ELSE result3]

END

指定された条件に基づいてデータを分類します。
IF関数IF( 状態result1)conditionがtrueに評価された場合、result1が返されます。 それ以外の場合は、nullが返されます。
IF( condition, result1, result2)conditionがtrueに評価された場合、result1が返されます。 それ以外の場合、result2が返されます。
COALESCE関数COALESCE( expression1, expression2, expression3 ...)複数の式で最初のnull以外の値を返します。
NULLIF関数NULLIF( expression1, expression2)2つの式の値が同じかどうかを評価します。 値が同じ場合は、nullが返されます。 それ以外の場合、最初の式の値が返されます。
TRY関数TRY(expression)エラーをキャプチャして、Log Serviceがデータのクエリと分析を継続できるようにします。

CASE WHENステートメント

CASE WHENステートメントは、データの分類に使用されます。

構文

condition1result1の場合
     [条件2result2のとき]
     [ELSE result3]
終了

パラメーター

項目説明
条件条件式。
result1あなたが返したい結果。

  • 例1: http_user_agentフィールドの値からブラウザ情報を抽出します。 次に、情報をChrome、Safari、および不明なタイプに分類し、3つのタイプのページビュー (PV) の数を計算します。
    • クエリ文
      * |
      選択
        CASE
          http_user_agentが「 % Chrome % 」のような場合、「Chrome」
          http_user_agentが「 % Safari % 」のような場合、「Safari' 」
          ELSE 'unknown'
        END AS http_user_agent、
        カウント (*) AS pv
      グループ化
        http_user_agent
    • クエリと分析結果ケース
  • 例2: 異なる時点で送信されたリクエストの分布を照会します。
    • クエリ文
      * |
      選択
        CASE
          request_time < 10の場合、't10'
          request_time < 100の場合、't100'
          request_time < 1000の場合、't1000'
          request_time < 10000の場合、't10000'
          ELSE「大きい」
        END AS request_time,
        カウント (*) AS pv
      グループ化
        request_time
    • クエリと分析結果ケース

IF関数

IF関数は、データを分類するために使用される。 この関数は、CASE WHENステートメントと同様に機能します。

構文

  • conditionがtrueに評価された場合、result1が返されます。 それ以外の場合は、nullが返されます。
    IF( condition, result1)
  • conditionがtrueに評価された場合、result1が返されます。 それ以外の場合、result2が返されます。
    IF( condition, result1, result2)

パラメーター

項目説明
条件条件式。
結果あなたが返したい結果。

すべてのリクエストに対するステータスコードが200リクエストの割合を計算します。

  • クエリ文
    * |
    選択
      sum(IF(status = 200、1、0)) * 1.0 / count(*) AS status_200_percentag
  • クエリと分析結果IF関数

COALESCE関数

COALESCE関数は、複数の式で最初のnull以外の値を返すために使用されます。

構文

COALESCE( expression1, expression2, expression3 ...)

パラメーター

項目説明
このパラメーターの値は、任意のデータ型の式にすることができます。

前日の費用と前月の同じ日の費用の比率を計算します。

  • クエリ文
    * |
    選択
      比較 (「前日の費用」、604800) AS diff
    から (
        SELECT
          COALESCE (合計 (PretaxAmount) 、0) AS「前日の費用」
        ログから
      )
  • クエリと分析結果COALESCE関数
    • 値6514393413.0は、前日の費用を示します。
    • 値19578267596.0は、前月の同じ日の費用を示します。
    • 値0.33273594719539659は、前月の同じ日の費用に対する前日の費用の比率を示します。

NULLIF関数

NULLIF関数は、2つの列の値が同じかどうかを確認するために使用されます。 値が同じ場合は、nullが返されます。 それ以外の場合、最初の式の値が返されます。

構文

NULLIF( expression1, expression2)

パラメーター

項目説明
有効なスカラー式。

client_ipフィールドとhostフィールドの値が同じかどうかを確認します。 値が同じでない場合、client_ipフィールドの値が返されます。

  • クエリ文
    * | SELECT NULLIF(client_ip,host)
  • クエリと分析結果NULLIF関数

TRY関数

TRY機能を使用してエラーをキャプチャし、Log Serviceがデータのクエリと分析を継続できるようにします。

構文

TRY(expression)

パラメーター

項目説明
このパラメーターの値は、任意のデータ型の式にすることができます。

regexp_extract関数が呼び出されたときにエラーが発生した場合、TRY関数はエラーをキャプチャします。 これにより、Log Serviceはデータのクエリと分析を継続できます。 クエリと分析の結果が返されます。
  • クエリ文
    * |
    選択
      TRY(regexp_extract(request_uri, '.*\/(file.*)', 1)) ASファイル、
      カウント (*) ASカウント
    グループ化
      file
  • クエリと分析結果TRY関数