Log Service 構文が連続したデータを分類する場合をサポートしています。 例えば、HTTP_USER_AGENT から情報を抽出し、二つのタイプに情報を分類:Android と iOS。

SELECT 
 CASE 
 WHEN http_user_agent like '%android%' then 'android' 
 WHEN http_user_agent like '%ios%' then 'ios' 
 ELSE 'unknown' END  
 as http_user_agent,
    count(1) as pv 
    group by http_user_agent

  • 要求の合計数に対する演算ステータスコードとして 200 とリクエストの割合:
    * | SELECT 
     sum(
     CASE 
     WHEN status =200 then 1
     ELSE 0 end
     ) *1.0 / count(1) as status_200_percentage
  • 異なる待ち時間の間隔の分布の統計を作成します
    * | SELECT `
     CASE
     WHEN latency < 10 then 's10'
     WHEN latency < 100 then 's100'
     WHEN latency < 1000 then 's1000'
     WHEN latency < 10000 then 's10000'
     else 's_large' end
     as latency_slot,
     count(1) as pv
     group by latency_slot

構文 IF

構文は、CASE WHEN 構文と論理的に等価である場合。

Case
     WHEN condition THEN true_value
     [ ELSE false_value ]
 END
  • IF(条件、 true_value)

    条件が true の場合、列 true_value が、そうでない場合は null を返します。

  • IF(条件、true_value、 false_value)

    条件が true の場合、列 true_value は、そうでない場合は、列 false_value が返され、返されます。

構文 COALESCE

合体は、複数の列の最初の非ヌル値を戻します。

Coalesce (value1, value2 [,...])

NULLIF 構文

value1 と value2 が等しい場合、null がそう VALUE1 が返され、返されます。

nullif(value1, value2)

TRY 構文

トライ構文は null 値を返すために、このよう 0 エラーなど基礎となる例外のいくつかをキャッチすることができます。

try(expression)