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

PostgreSQL查询优化:按tau分组将字段值合并为数组

PostgreSQL分组聚合查询解决方案

你可以使用PostgreSQL的聚合函数array_agg和string_agg实现需求,具体查询语句如下:

SELECT
    id,
    tau,
    array_agg(wspd) AS wspd,
    string_agg(sector::text, ',') AS sector,
    string_agg(radius::text, ',') AS radius
FROM data_base
WHERE id = 49272
GROUP BY id, tau
ORDER BY tau;

关键逻辑说明:

  • 分组规则:通过GROUP BY id, tau将同一id和tau值的行归为一组,确保聚合操作仅针对同一tau的所有记录。
  • wspd聚合:array_agg(wspd)直接将分组内的wspd数值聚合成PostgreSQL原生数组,完全匹配示例中{34,50}的格式。
  • sector/radius聚合:由于这两个字段本身是数组类型,先通过::text将其转为保留原数组格式的文本,再用string_agg(..., ',')将所有文本元素用逗号拼接,得到示例中{NE,SE,SW,NW},{NE,SE,SW,NW}的格式。
  • 排序控制:ORDER BY tau确保结果按tau值升序排列,和示例输出的顺序一致。

如果需要保证wspd数组内的元素顺序(比如按数值大小或原数据顺序),可以在array_agg中指定排序规则:

array_agg(wspd ORDER BY wspd) AS wspd

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 09:03:11