为什么GROUP_CONCAT在Impala中不按指定列排序?

问题描述 投票:0回答:1

我正在尝试在 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 函数应该按指定列对结果进行排序。

这是我迄今为止尝试过的:

  • 尝试使用 DESC 而不是 ASC
  • 尝试使用不同的列来排序

但是这些解决方案都不适合我。

有人可以帮我弄清楚为什么 GROUP_CONCAT 没有按指定列排序以及如何修改查询来实现此目的吗?

提前致谢!

sql-order-by impala group-concat
1个回答
0
投票

order by 在 Impala 的 group_concat 中不起作用,因为数据分布在节点之间。因此,使用带有 order by 和 limit XXX 的 sub_query(确保它不低于您拥有的行数),以便所有数据都进入一个数据节点,然后 group_concat 将处理该 sub_query

© www.soinside.com 2019 - 2024. All rights reserved.