You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中如何按index顺序将元组聚合为二维数组?

解决方案

假设你的原表包含index、x、y字段(若有分组维度比如group_id也可加入),可以根据你使用的SQL方言选择对应实现:

PostgreSQL 版本

SELECT
  -- 若不需要分组,删除下面这行和末尾的GROUP BY
  group_id,
  ARRAY_AGG(ARRAY[x, y] ORDER BY index) AS coordinates
FROM your_table
GROUP BY group_id;

MySQL 版本

SELECT
  -- 若不需要分组,删除下面这行和末尾的GROUP BY
  group_id,
  JSON_ARRAYAGG(JSON_ARRAY(x, y) ORDER BY index) AS coordinates
FROM your_table
GROUP BY group_id;

核心逻辑说明

  • 用ARRAY[x,y](PostgreSQL)或JSON_ARRAY(x,y)(MySQL)把每行的x、y值打包成单个坐标元素
  • 通过ARRAY_AGG/JSON_ARRAYAGG配合ORDER BY index,严格按照原结果中index列的顺序聚合所有坐标,生成目标格式的数组

如果不需要分组(即把所有行聚合成一个坐标数组),直接去掉SQL中的group_id字段和GROUP BY语句即可。

内容的提问来源于stack exchange,提问作者Alexandre Krabbe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 19:02:04