casewhen CASE WHEN和IF分支语法

发布时间:2020-06-09 12:14:06   来源:网络 关键词:casewhen

casewhen


aria-labelledby="ariaid-title1">

支持CASE WHEN语法,对连续数据进行归类。例如,从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语法

if语法逻辑上等同于CASE WHEN语法。

CASE     WHEN condition THEN true_value     [ ELSE false_value ] END
  • if(condition, true_value)

    如果condition是true,则返回true_value这一列,否则返回null。

  • if(condition, true_value, false_value)

    如果condition是true,则返回true_value这一列,否则返回false_value这一列。

COALESCE语法

coalesce 返回多个列的第一个非Null值。

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

NULLIF 语法

如果value1和value2相等,返回null,否则返回value1。

nullif(value1, value2)

TRY 语法

try语法可以捕获一些底层的异常,例如除0错误,返回null值。

try(expression)

免备案CDN
网站被攻击
猜你喜欢
CDN话题