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