collect_set 的返回类型是 array<type>,其中 type 是输入列的数据类型。这意味着 collect_set 会返回一个数组,数组中的元素类型与输入列的数据类型相同,并且数组中的元素是唯一的。 示例 假设我们有一个名为 sales 的表,其中包含以下数据: idproductregion 1 ProductA East 2 ProductB West 3 ProductA...
1.collect_set 分组组合数组(数组内去重) collect_set select code ,collect_set(tenant_id) from dim_mkt_event group by code; 2.array_contains 数组中是否包含 ,返回布尔类型 select code ,array_contains(set_tenant,1211809272448907264) ,!array_contains(set_tenant,1211809272448907264) from ( select code ...
1 selectusername, collect_list(video_name)fromt_visit_videogroupbyusername ; 但是上面的查询结果有点问题,因为霸王别姬实在太好看了,所以李四这家伙看了两遍,这直接就导致得到的观看过视频列表有重复的,所以应该增加去重,使用collect_set,其与collect_list的区别就是会去重: 1 selectusername, collect_set(video...
这里有两个方法,一个是后面要讲到的使用分析函数,另一个就是使用COLLECT_SET函数,该函数将返回一个包含被GROUP BY排除的列的副本集合。 例:使用COLLECT_SET,其中的列不用进行GROUP BY hive> SELECT sex_age, count(*) AS row_cnt FROM employee GROUP BY sex_age; 注:聚合函数在同一个语句中可以组合使用,...
一、collect_set 和 collect_list 函数 collect_set/collect_list(col)函数只接受基本数据类型,它的主要作用是将某字段的值汇总,产生Array类型字段,注意该函数只能接受一列参数!我们一般都会配合group by函数,直接汇总分组数据! collect函数也可以实现一个功能:获取group by后面没有的字段!
select collect_set(name) from test2; -- ["tom","marry","peter"] collect_list :将某字段不去重汇总,返回array类型字段 select collect_list(name) from test2; -- ["tom","marry","peter","tom","tom","marry"] 列传行 explode :将一列复杂的array或map拆分成多行 测试表:test3 category1 cate...
collect_set(col): 返回某列的去重后元素数组 collect_list(col): 返回某列的元素数组(可重复) 分析函数:Analytic 1. 窗函数:sum, avg, min, max 示例表:cookie1 | cookieid | createtime | pv | | --- | --- | -- | | cookie1 | 2015-04-10 | 1 | | cookie1 | 2015-04-11 | 5 ...
Hive中的collect_set函数用于返回指定列的唯一值集合。其语法如下: SELECT collect_set(column_name) FROM table_name WHERE conditions; 复制代码 其中,column_name是要收集唯一值的列名,table_name是要查询的表名,conditions是查询条件。 例如,假设有一个表student,包含学生的姓名和年龄字段,我们可以使用collect_set...