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
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