【问题标题】:Impala - How Stuff and 'For Xml Path' work in Impala SQLImpala - 在 Impala SQL 中 Stuff 和 'For Xml Path' 如何工作
【发布时间】:2018-10-10 00:40:26
【问题描述】:

表格是:

+----+------+
| 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 中实现它?

【问题讨论】:

    标签: sql impala


    【解决方案1】:

    使用 group_concat() 函数:

    Here你会找到参考

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

    【讨论】:

    • 谢谢,我发现如果不使用逗号,它会默认识别它会用逗号分隔。所以可以是select id, group_concat(name) from tablename group by id
    猜你喜欢
    • 2015-09-21
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    相关资源
    最近更新 更多