阅读量:2
在 PostgreSQL 中,可以使用 crosstab
函数来实现行转列的操作。crosstab
函数需要通过安装 tablefunc
扩展来使用。
以下是一个使用 crosstab
函数进行行转列的示例:
假设有一个名为 sales
的表,结构如下所示:
id | product | month | amount ----------------------------- 1 | A | Jan | 100 2 | A | Feb | 150 3 | B | Jan | 200 4 | B | Feb | 250
要将上述表按照产品名称进行行转列,可以使用以下 SQL 查询:
SELECT * FROM crosstab( 'SELECT product, month, amount FROM sales ORDER BY 1,2', 'SELECT DISTINCT month FROM sales ORDER BY 1' ) AS ct (product text, jan int, feb int);
执行以上查询后,将得到如下结果:
product | jan | feb -------------------- A | 100 | 150 B | 200 | 250
这样就实现了将原始表中的行数据按照产品名称进行了转列。