背景:在 hologres 中有多条记录分组汇总,其中有一个数组字段( eg:positions )
请问我可以使用什么函数,或者怎么样实现数组合并去重返回呢?
尝试问过 gpt ,gpt 给出的答案为:
SELECT staff_id, array_distinct(array_agg(positions)) AS merged_positions FROM staff_positions GROUP BY staff_id;
但是 holo 并不支持 array_distinct 函数。
自己也写过 sql ,虽然能实现,但是性能很差:
SELECT staff_id, array_agg(DISTINCT element) AS result FROM ( SELECT staff_id, unnest(positions) AS element FROM staff_positions
) AS subquery GROUP BY staff_id;
请教一下各位大佬有没有好的写法能够实现该功能呢?万分感谢~
![]() |
1
lifanxi 4 天前 via Android
作为 8 年前写下 Hologres 最初几行代码的人,我惭愧地说:这个题我不会。我去找人问问看。
您也可以从官网找到用户交流钉钉群,进群咨询。或者通过官网工单咨询。 |
![]() |
3
lifanxi 4 天前 via Android
https://help.aliyun.com/zh/hologres/developer-reference/array-functions?spm=a2c4g.11186623.help-menu-search-113622.d_0#bfa4e6a6dd0a2
咨询了一下相关同事,array distinct 从 1.3 版本开始就已经支持了,如上文档所述。是这个函数仍不能满足您的需求还是您的实例版本过低?如果需要升级实例版本,可以通过管控台自助升级,或者开工单联系技术支持。 |