MAP_UNION_SUM
简介
MAP_UNION_SUM 函数将多行 map 合并为一个 map,相同 key 的 value 累加求和,不同 key 直接保留。适合用在标签权重汇总、用户特征值累加、多维度分数聚合等场景。
语法
参数
:类型为map_col
的列或表达式,其中 value 类型须为数值类型(如MAP<K, V>
、INT
、BIGINT
等)。DOUBLE
返回结果
- 返回值类型为
,与输入的 map 类型一致。MAP<K, V> - 相同 key 的 value 相加;key 只在部分行出现时,其他行视为不存在该 key,不参与累加。
- 若输入列全部为
,返回NULL
。NULL
示例
- 合并多行 map,相同 key 累加,不同 key 保留:
key
a 在两行均出现,值 1 + 3 = 4;key b 只出现在第一行,保留为 2;key c 只出现在第二行,保留为 4。
- 结合 GROUP BY 按分组累加标签权重:
- 使用 FILTER 子句只聚合满足条件的行:
注意事项
- value 类型必须为数值类型,map 的 value 为字符串类型时会报错。
行在聚合时自动跳过,不影响其他行的累加结果。NULL
联系我们
