我正在尝试在 Impala 中使用 GROUP_CONCAT 函数,并且我想按其中一列对结果进行排序。这是我到目前为止所拥有的:
SELECT column1, column2, GROUP_CONCAT(column3 ORDER BY column3 ASC) AS column3_concatenated
FROM table_name
GROUP BY column1, column2;
但是,结果不是按指定列排序,而是随机顺序。
我的预期结果是 GROUP_CONCAT 函数应该按指定列对结果进行排序。
这是我迄今为止尝试过的:
但是这些解决方案都不适合我。
有人可以帮我弄清楚为什么 GROUP_CONCAT 没有按指定列排序以及如何修改查询来实现此目的吗?
提前致谢!
order by 在 Impala 的 group_concat 中不起作用,因为数据分布在节点之间。因此,使用带有 order by 和 limit XXX 的 sub_query(确保它不低于您拥有的行数),以便所有数据都进入一个数据节点,然后 group_concat 将处理该 sub_query