wordpress站名在哪改,网站做游客留言做,做多语言网站多少钱,wordpress制作教程视频hive高频使用的拼接函数及“避坑”
说到拼接函数应用场景和使用频次还是非常高#xff0c;比如一个员工在公司充当多个角色#xff0c;我们在底层存数的时候往往是多行#xff0c;但是应用的时候我们通常会只需要一行#xff0c;角色字段进行拼接#xff0c;这样join其他…hive高频使用的拼接函数及“避坑”
说到拼接函数应用场景和使用频次还是非常高比如一个员工在公司充当多个角色我们在底层存数的时候往往是多行但是应用的时候我们通常会只需要一行角色字段进行拼接这样join其他表的时候呢也不会造成数据被重复引用计算。
1、拼接多个字符串concat_null(…)
从上图中的说明中我们可以看到在应用场景中通常使用concat_null(…)防止由于有null存在导致的拼接异常。
2. 用分隔符拼接多个字符串concat_ws(…)
需要注意的是concat_ws(…)可以直接处理掉null,而且如果将sep分割符使用’(空值)则功能和concat_null(…)一样。
3、collect_set、collect_list实现列转行
由于collect_set在实现列转行的时候进行了去重处理自然实际应用中应用的也会更多。
4、“避坑” null和非字符串字段
由于在实际生产环境中我们所使用的引擎有所不同兼容性也不同。有时候NULL和非字符串字段在查询时也会出现问题。
1、通常我们可以把null进行替换。if(字段名 is null,‘’,字段名)
2、非字符串转化为字符串 cast(字段名 as string)
SELECT id, concat_ws(,,collect_set( cast(if(角色 is null,,角色) as string) )) AS 角色 -- 将每个id对应多个的角色去重组合放到一行并使用英文,分隔角色
FROM emp WHERE dt 20230618 GROUP BY 1