支持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)
在文档使用中是否遇到以下问题
更多建议
匿名提交