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

PostgreSQL中如何查询某列最小值与最大值并以数组形式输出

解决方法

现有表结构:

idvalue
110
220
330
440

你尝试的语句select json_agg(min(value), max(value)) as value;报错,原因是不能在json_agg聚合函数中直接嵌套其他聚合函数(min/max)。要得到[10,40]这样的JSON数组结果,有两种简洁的解决方式:

方法1:使用json_build_array直接构造数组

这是最直接高效的方式,先计算出value列的最小值和最大值,再用json_build_array将它们组合成JSON数组:

SELECT json_build_array(MIN(value), MAX(value)) AS value;

方法2:通过子查询生成行数据再聚合

先将最小值和最大值分别作为单独的行,再用json_agg将这些行聚合为数组:

SELECT json_agg(val) AS value
FROM (
    SELECT MIN(value) AS val FROM your_table
    UNION ALL
    SELECT MAX(value) AS val FROM your_table
) AS min_max_vals;

两种方法都能返回你需要的[10,40]结果,其中方法1更简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:42:46