Impala - Stuff 和 'For Xml Path' 如何在 Impala SQL 中工作

Impala - How Stuff and 'For Xml Path' work in Impala SQL

Table 是:

+----+------+
| Id | Name |
+----+------+    
| 1  | aaa  |
| 1  | bbb  |
| 1  | ccc  |
| 1  | ddd  |
| 1  | eee  |
+----+------+

所需输出:

+----+---------------------+
| Id |        abc          |
+----+---------------------+ 
|  1 | aaa,bbb,ccc,ddd,eee |
+----+---------------------+

查询:

SELECT ID,  abc = STUFF(
         (SELECT ',' + name 
          FROM temp1 t1
          WHERE t1.id = t2.id
          FOR XML PATH (''))
         , 1, 1, '') from temp1 t2
group by id;

我们知道这将在 SQL 服务器中运行。但是当运行 in Impala时,会报错AnalysisException: Syntax error in line 54:undefined: FOR XML PATH('')), 1, 1, '').

这是否意味着 Imapla 不支持 XML 路径?如果不是,是否有任何其他方法可以将其实现到 Impala?

使用 group_concat() 函数:

Here 你会找到参考资料

select id, group_concat(name,',') from tablename
group by id