clickhouse函数数组实践

一个字段值按照一个标记拆分成数组,然后用函数从数组中获取数据

如果依赖java程序解析字段,字段一般存json,如果依赖sql解析一般字段存a|b|c标识分割,用函数变成数组获取

原始数据:

 

clickhouse函数数组实践

用|分割--不会丢失行

clickhouse函数数组实践

 

统计:哪个库导出指标量,库属于哪个部分

SELECT "所属部分","所属库",
COUNT(
  "指标代码"
)
FROM
(SELECT  arrayElement(splitByChar('|',event_property_value),1) as "指标代码", arrayElement(splitByChar('|',event_property_value),2) as "指标名", arrayElement(splitByChar('|',event_property_value),3) as "所属库", arrayElement(splitByChar('|',event_property_value),4) as "所属部分" FROM  cms.daily_new_clientrpt_slave  WHERE event_property_code != '' AND event_property_code='101101000800016006' ORDER BY  day DESC) T GROUP BY "所属库","所属部分"

效果图:

clickhouse函数数组实践

 

关于多级分组 group by "所属库","所属部分"  ---前面的是一级分组,一级分组相同才按二级分组,如果一级分组已是最细,二级分组只是一个值而已