配置单元/SQL中收集集的收集集

配置单元/SQL中收集集的收集集,sql,group-by,hive,Sql,Group By,Hive,我有以下格式的数据: Tin Month Code A Jan P53 A Jan P54 A Jan P53 A Feb P54 A Feb P55 B Jan P55 B Jan P51 B Feb P51 B Feb P51 现在我想分两步对这些数据进行分组。 首先按Tin和月份: TIN Month Code_set A Jan ['P53','P54'] A Feb ['P54','P5

我有以下格式的数据:

Tin Month Code
A   Jan   P53
A   Jan   P54
A   Jan   P53
A   Feb   P54
A   Feb   P55
B   Jan   P55
B   Jan   P51
B   Feb   P51
B   Feb   P51
现在我想分两步对这些数据进行分组。 首先按Tin和月份:

TIN  Month Code_set
A    Jan    ['P53','P54']
A    Feb    ['P54','P55']
B    Jan    ['P55','P51']
B    Feb    ['P51']
我可以使用
collect\u set
轻松做到这一点。 此外,我希望以以下方式使用该分组数据在Tin级别对该数据进行分组:

Tin Code_set
A   ['P53','P54','P55']
B   ['P55','P51']
现在,我可以在初始原始数据上使用
collect\u Set
轻松实现这一点,尽管我想在分组数据上这样做。
有什么方法可以做到这一点吗?

使用
explode()
和recollect可以取消测试:

select g.tin, collect_set(code)
from grouped g lateral view
     explode(g.codes) explodeval as code
group by g.tin;

你好,戈登,这很有用。请为未来的用户只做一次编辑,
explode(g.codes)explodeVal as code
@jitesh2796。非常感谢。我觉得那个语法很难懂。为什么Hive不能像其他数据库在类似情况下那样使用
explodval(code)