式 | 文法 | 説明 |
CASE WHEN condition1 THEN result1 [WHEN condition2 THEN result2] [ELSE result3] END | 条件判断によってデータを分類します。 | |
IF(condition, result1) | condition が true の場合、result1 を返します。それ以外の場合は null を返します。 | |
| IF(condition, result1, result2) | condition が true の場合、result1 を返します。それ以外の場合は result2 を返します。 |
NULLIF(expression1, expression2) | 2つの式の値が等しいかどうかを比較します。等しい場合は null を返し、それ以外の場合は最初の式の値を返します。 | |
TRY(expression) | 例外情報をキャプチャし、システムがクエリと分析操作を継続できるようにします。 | |
COALESCE(expression1, expression2...) | 複数の式から最初の非 NULL 値を取得します。 | |
CASE WHEN condition1 THEN result1[WHEN condition2 THEN result2][ELSE result3]END
パラメータ | 説明 |
condition | 条件式。 |
result | 結果を返します。 |
* |SELECTCASEWHEN http_user_agent like '%Chrome%' then 'Chrome'WHEN http_user_agent like '%Safari%' then 'Safari'ELSE 'unknown'END AS http_user_agent,count(*) AS pvGROUP BYhttp_user_agent
* |SELECTCASEWHEN request_time < 0.001 then 't0.001'WHEN request_time < 0.01 then 't0.01'WHEN request_time < 0.1 then 't0.1'WHEN request_time < 1 then 't1'ELSE 'overtime'END AS request_time,count(*) AS pvGROUP BYrequest_time
IF(condition, result1)
IF(condition, result1, result2)
パラメータ | 説明 |
condition | 条件式。 |
result | 結果を返します。 |
* |SELECTsum(IF(status = 200, 1, 0)) * 1.0 / count(*) AS status_200_percentag
NULLIF(expression1, expression2)
パラメータ | 説明 |
expression | 任意の有効なスカラー式。 |
* | SELECT NULLIF(server_addr,http_host)
TRY(expression)
パラメータ | 説明 |
expression | 任意の型の式。 |
* |SELECTTRY(regexp_extract(uri, '.*\\/(index.*)', 1))AS file, count(*)AS countGROUP BYfile
COALESCE(expression1, expression2...)
パラメータ | 説明 |
expression | 任意の有効なスカラー式。 |
* | select COALESCE(null, 'test')
フィードバック