0 需求
hive中怎么统计array中非零的个数
【0,1,3,6,0】
结果:非0的个数为3
1 实现
(1)将array转换成字符串,采用concat_ws()函数
select concat_ws(',',array) from test_array
返回:0,1,3,6,0
注意区分concat函数和concat_ws函数
- concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL
- concat_ws函数在连接字符串的时候,只要有一个字符串不是NULL,就不会返回NULL。
hive> select concat('a','b');
OK
ab
Time taken: 0.477 seconds, Fetched: 1 row(s)
hive> select concat('a','b',null);
OK
NULL
Time taken: 0.181 seconds, Fetched: