Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Impala-Stuff和“For Xml Path”在Impala SQL中的工作方式_Sql_Impala - Fatal编程技术网

Impala-Stuff和“For Xml Path”在Impala SQL中的工作方式

Impala-Stuff和“For Xml Path”在Impala SQL中的工作方式,sql,impala,Sql,Impala,表为: +----+------+ | Id | Name | +----+------+ | 1 | aaa | | 1 | bbb | | 1 | ccc | | 1 | ddd | | 1 | eee | +----+------+ 所需输出: +----+---------------------+ | Id | abc | +----+---------------------+ | 1 | aaa,bbb,ccc,dd

表为:

+----+------+
| 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中运行时,它将在第54行得到错误分析异常:语法错误:未定义:对于XML路径,1,1


这是否意味着Imapla不支持XML路径?如果没有,是否有其他方法将此实现到黑斑羚中

使用group_concat功能:

你会找到参考资料的

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

谢谢,我发现如果不使用逗号,它将默认标识为逗号分隔。因此可以通过id从tablename group中选择id、group_concatname