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:组合集合的主要内容,如果未能解决你的问题,请参考以下文章

mysql中 怎样根据姓名集合查询id集合?

关于SQL中的集合查询

如何根据另一个的选定项目过滤一个组合框集合?

MySQL 命令行操作集合

MySQL高级文章集合

Mysql—存储过程