MySQL、HiveQL、SQL:组合集合
Posted
技术标签:
【中文标题】MySQL、HiveQL、SQL:组合集合【英文标题】:MySQL, HiveQL, SQL: Combine sets 【发布时间】:2020-02-05 20:24:30 【问题描述】:如何组合集合?比如我有下表db.table1
:
cola colb colc
abc 1 [1, 2]
abc 1 [3]
我想要:
abc 1 [1, 2, 3]
我试过了:
SELECT cola, colb, COLLECT_SET(colc)
FROM db.tbl1;
这给出了错误FAILED: UDFArgumentTypeException Only primitive type arguments are accepted but array<string> was passed as parameter 1.
,因为我似乎无法收集集合。
【问题讨论】:
colc
字段的数据类型是什么?
@Akina array<string>
mysql(你已经用它标记了你的问题)没有这样的数据类型。
【参考方案1】:
我想通了。
SELECT cola, colb, COLLECT_SET(b.col) AS colc
FROM db.table1
LATERAL VIEW EXPLODE(colc) b
GROUP BY cola, colb;
将返回:
cola colb colc
abc 1 [1, 2, 3]
【讨论】:
以上是关于MySQL、HiveQL、SQL:组合集合的主要内容,如果未能解决你的问题,请参考以下文章