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

如何在Apache Doris 2.1.7/3.0中从表值生成JSON数组?

在Doris 2.1.7/3.0中生成整列值的JSON数组方法

你当前用SELECT JSON_ARRAY(col) FROM sometable;得到每行一个单值数组是正常的——JSON_ARRAY()是行级函数,仅对当前行的列值生成数组。如果要把整列的所有值合并成一个JSON数组,分版本处理:

Doris 3.0版本

直接使用内置聚合函数JSON_ARRAY_AGG(),它能将整列(或分组后的列)的所有值聚合为一个JSON数组:

-- 生成整列的JSON数组
SELECT JSON_ARRAY_AGG(col) FROM sometable;

-- 按指定字段分组生成数组
SELECT group_col, JSON_ARRAY_AGG(col) FROM sometable GROUP BY group_col;

Doris 2.1.7版本

2.1.7未提供JSON_ARRAY_AGG(),可以通过GROUP_CONCAT拼接JSON格式字符串,再转成JSON类型:

-- 处理字符串类型字段(自动添加双引号保证JSON格式合法)
SELECT JSON_PARSE(CONCAT('[', GROUP_CONCAT(QUOTE(col)), ']')) FROM sometable;

-- 处理数值类型字段(无需加引号)
SELECT JSON_PARSE(CONCAT('[', GROUP_CONCAT(col), ']')) FROM sometable;

-- 需要去重的场景
SELECT JSON_PARSE(CONCAT('[', GROUP_CONCAT(DISTINCT QUOTE(col)), ']')) FROM sometable;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 05:42:31