⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

CROSSTAB 透视表:将行转列并处理多列聚合

使用 tablefunc 扩展的 crosstab 函数,将分类汇总结果从行形式转为列形式,解决标准 SQL 无法动态列名的痛点。 · 难度:入门 · +10XP

CROSSTAB 透视表:将行转列并处理多列聚合

PIVOT 在许多数据库中缺失。PostgreSQL 通过 crosstab() 实现行转列,但要求输入按行排序且第二列是分类、第三列是值。本教程演示如何构建正确排序的 SQL 作为 crosstab 输入,并处理多个度量值。

-- 启用扩展
CREATE EXTENSION IF NOT EXISTS tablefunc;

-- 按月份和产品类别统计销售额并转为列 SELECT * FROM crosstab( 'SELECT date_trunc(''month'', sale_date)::date AS month, category, sum(amount)::numeric FROM sales GROUP BY month, category ORDER BY month, category', 'VALUES (''Electronics''), (''Clothing''), (''Books'')' ) AS ct(month date, electronics numeric, clothing numeric, books numeric);

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 146 篇
0 完成
🔥 0