上海整形网站建设,奢侈品手表网站,wordpress+小米,怎么通过做网站来赚钱吗postgresql 行转列的例子
首先要启用tablefunc 扩展。 用管理员账户执行下面的指令。
CREATE EXTENSION tablefunc;在 PostgreSQL 中#xff0c;你可以使用 crosstab 函数将列转换为行。crosstab 函数是在 tablefunc 扩展中提供的#xff0c;因此在使用之前#xff0c;你需…postgresql 行转列的例子
首先要启用tablefunc 扩展。 用管理员账户执行下面的指令。
CREATE EXTENSION tablefunc;在 PostgreSQL 中你可以使用 crosstab 函数将列转换为行。crosstab 函数是在 tablefunc 扩展中提供的因此在使用之前你需要确保已经安装并启用了该扩展。
下面是一个示例假设你有一个名为 sales 的表其中包含了销售数据
CREATE TABLE sales (product_id INT,month INT,amount NUMERIC
);INSERT INTO sales (product_id, month, amount)
VALUES(1, 1, 100),(1, 2, 150),(1, 3, 200),(2, 1, 50),(2, 2, 75),(2, 3, 100);
现在你想要将这些数据按照产品 ID 进行列转行使得每个产品的销售额在不同的月份中成为一行。你可以使用以下查询来实现
SELECT *
FROM crosstab(SELECT product_id, month, amountFROM salesORDER BY 1, 2,VALUES (1), (2), (3)
) AS sales_pivot (product_id INT, month_1 NUMERIC, month_2 NUMERIC, month_3 NUMERIC);
这个查询中我们首先指定了原始查询它返回了 product_id、month 和 amount 列。然后我们指定了一个包含所有可能 product_id 值的值列表这里是 (1), (2), (3)。最后我们使用 crosstab 函数将原始查询的结果进行转换并指定了转换后的列名。
运行上述查询你将会得到以下结果 product_id | month_1 | month_2 | month_3
---------------------------------------1 | 100 | 150 | 2002 | 50 | 75 | 100
这样你就将原始的列转换为了行每个产品的销售额在不同的月份中成为了一行。
更多案例请参考 https://blog.csdn.net/qq_31156277/article/details/90598311