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

Simple Log Service:条件式

最終更新日:Aug 26, 2024

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

次の表に、Simple Log Serviceでサポートされている条件式を示します。

重要

分析ステートメントで文字列を使用する場合は、文字列を単一引用符 ('') で囲む必要があります。 囲まれていない文字列または二重引用符 ("") で囲まれている文字列は、フィールド名または列名を示します。 たとえば、'status' はステータス文字列を示し、statusまたは "status" はステータスログフィールドを示します。

構文

説明

SQLでサポート

SPLでサポート

ケースWHEN式

condition1result1の場合

[condition2result2のとき]

[ELSE result3]

END

指定された条件に基づいてデータを分類します。

IF式

IF( condition, 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)

式の呼び出し中に発生したエラーをキャプチャし、エラーが発生した場合でもSimple Log Serviceがデータのクエリと分析を継続できるようにします。

ケースWHEN式

CASE WHEN式はデータを分類する。

構文

条件1がresult1であるときの

CASE WHEN condition1 THEN result1
     [WHEN condition2 THEN result2]
     [ELSE result3]
END

パラメーター

パラメーター

説明

条件

このパラメータの値は条件式です。

result1

返される結果。

  • 例1: http_user_agentフィールドの値からブラウザ情報を抽出します。 次に、情報をChrome、Safari、および不明なタイプに分類し、3つのタイプのページビュー (PV) の数を計算します。

    • クエリ文

      * |
      SELECT
        CASE
          WHEN http_user_agent like '%Chrome%' then 'Chrome'
          WHEN http_user_agent like '%Safari%' then 'Safari'
          ELSE 'unknown'
        END AS http_user_agent,
        count(*) AS pv
      GROUP BY
        http_user_agent
    • クエリと分析結果 case when

  • 例2: 異なる時点で送信されたリクエストの分布を照会します。

    • クエリ文

      * |
      SELECT
        CASE
          WHEN request_time < 10 then 't10'
          WHEN request_time < 100 then 't100'
          WHEN request_time < 1000 then 't1000'
          WHEN request_time < 10000 then 't10000'
          ELSE 'large'
        END AS request_time,
        count(*) AS pv
      GROUP BY
        request_time
    • クエリと分析結果 case when

IF式

IF式はデータを分類する。 この式は、CASE WHEN式と同様に機能します。

構文

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

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

    IF(condition, result1, result2)

パラメーター

パラメーター

説明

条件

このパラメータの値は条件式です。

結果

返される結果。

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

  • クエリ文

    * |
    SELECT
      sum(IF(status = 200, 1, 0)) * 1.0 / count(*) AS status_200_percentag
  • クエリと分析結果 IF语法

COALESCE式

COALESCE式は、複数の式の最初のnull以外の値を返します。

構文

COALESCE(expression1, expression2, expression3...)

パラメーター

パラメーター

説明

このパラメーターの値は、任意の型の式です。

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

  • クエリ文

    * |
    SELECT
      compare("Expenses of the previous day", 604800) AS diff
    FROM  (
        SELECT
          COALESCE(sum(PretaxAmount), 0) AS "Expenses of the previous day"
        FROM log
      )
  • クエリと分析結果 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式は、式の呼び出し中に発生したエラーをキャプチャし、エラーが発生した場合でもSimple Log Serviceがデータのクエリと分析を継続できるようにします。

構文

TRY(expression)

パラメーター

パラメーター

説明

このパラメーターの値は、任意の型の式です。

regexp_extract式が呼び出されたときにエラーが発生した場合、TRY式はエラーをキャプチャし、Simple Log Serviceは引き続きデータのクエリと分析を行います。 クエリと分析の結果が返されます。

  • クエリ文

    * |
    SELECT
      TRY(regexp_extract(request_uri, '.*\/(file.*)', 1)) AS file,
      count(*) AS count
    GROUP BY
      file
  • クエリと分析結果 try语法