Impala-Impala SQL中的填充和“ For Xml Path”如何工作

时间:2018-10-10 00:40:27

标签: sql impala

表是:

+----+------+
| 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 Server中起作用。但是在Impala中运行时,它将得到错误AnalysisException: Syntax error in line 54:undefined: FOR XML PATH('')), 1, 1, '')

这是否意味着Imapla不支持FOR XML PATH?如果没有,是否还有其他方法可以在Impala中实现呢?

1 个答案:

答案 0 :(得分:1)

使用group_concat()函数:

Here,您会找到参考

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