PostgreSQL的jsonb_object_agg函数的两种用法

1.直接聚合成json格式

sql 复制代码
CREATE TABLE products (
    id SERIAL PRIMARY KEY,
    category TEXT,
    name TEXT,
    price NUMERIC
);
CREATE TABLE
Time: 7.595 ms
INSERT INTO products (category, name, price) VALUES
('Electronics', 'Laptop', 1200.00),
('Electronics', 'Smartphone', 800.00),
('Apparel', 'T-Shirt', 25.00),
('Apparel', 'Jeans', 75.00),
('Electronics', 'Headphones', 150.00);
INSERT 0 5
Time: 2.154 ms
SELECT
    category,
    jsonb_object_agg(name, price) AS products_detail
FROM products
GROUP BY category;
  category   |                         products_detail                         
-------------+-----------------------------------------------------------------
 Electronics | {"Laptop": 1200.00, "Headphones": 150.00, "Smartphone": 800.00}
 Apparel     | {"Jeans": 75.00, "T-Shirt": 25.00}
(2 rows)

Time: 0.378 ms

2.将每行记录构造成一个 jsonb 对象,然后用 jsonb_agg 聚合为数组

sql 复制代码
SELECT
    category,
    
    jsonb_agg(jsonb_build_object('name', name, 'price', price)) AS products_array
FROM products
GROUP BY category;
  category   |                                                      products_array                                                      
-------------+--------------------------------------------------------------------------------------------------------------------------
 Electronics | [{"name": "Laptop", "price": 1200.00}, {"name": "Smartphone", "price": 800.00}, {"name": "Headphones", "price": 150.00}]
 Apparel     | [{"name": "T-Shirt", "price": 25.00}, {"name": "Jeans", "price": 75.00}]
(2 rows)

Time: 0.438 ms
相关推荐
777VG4 小时前
PostgreSQL +martin将多张表输出成一个 MVT
前端·数据库·postgresql
aax12134534 小时前
VOC 集群治理工程实操|美丽蓝天绿岛项目 RTO 工艺选型、管控方案与申报要
大数据·数据库·人工智能
IvorySQL5 小时前
PG 日报|优化缓冲区批量扫描,降低多套接字并发竞争
数据库·人工智能·postgresql·开源·区块链
这个DBA有点耶5 小时前
交易型数据库是什么?OLTP核心能力与2026选型指南
数据库·数据仓库·sql·database·数据库架构·olap·dba
大熊猫侯佩5 小时前
WWDC26 全新 SwiftData 的 .codable 宏选项:它不是泛型专用胶水
数据库·swift·apple
童谣17 小时前
越华环保集团市级统筹申报数字化中台:政策校验与减排仿真一体化架构
数据库·架构
制造数据与AI践行者老蒋7 小时前
离谱!PromptTemplate 遇上 JSON,花括号直接引发解析战争
数据库·microsoft·json
中微极客7 小时前
用LangChain 0.3构建生产级RAG与Agent:从API集成到Streamlit部署
数据库·人工智能·langchain
吴声子夜歌7 小时前
MongoDB 4.x——并发优化
数据库·mongodb
不如语冰8 小时前
AI大模型入门-Python进阶-上下文管理与with语句
开发语言·数据结构·数据库·人工智能·pytorch·redis·python