gpt4 book ai didi

sql - PostgreSQL 中的数据透视表

转载 作者:行者123 更新时间:2023-11-29 12:37:03 26 4
gpt4 key购买 nike

我正在尝试找到一种在 Postgres 中进行数据透视的方法,但我无法使用它,因此我正在尝试寻找另一种方法。我发现以下网站解释了 SQL Server 中的数据透视表,在示例 1 中正是我想要做的。 http://sqlhints.com/2014/03/10/pivot-and-unpivot-in-sql-server/

例子是:

CREATE TABLE CourseSales(Course VARCHAR(50),Year INT,Earning  MONEY);

INSERT INTO CourseSales VALUES('.NET',2012,10000);
INSERT INTO CourseSales VALUES('Java',2012,20000);
INSERT INTO CourseSales VALUES('.NET',2012,5000);
INSERT INTO CourseSales VALUES('.NET',2013,48000);
INSERT INTO CourseSales VALUES('Java',2013,30000);

使用数据透视函数查询如下:

SELECT *FROM CourseSales
PIVOT(SUM(Earning)
FOR Course IN ([.NET], Java)) AS PVTTable;

我想在 postgresql 中做同样的事情,但使用像上面那样的动态方式。

最佳答案

不幸的是,我找不到使用 postgresql 来旋转我的表并以我需要的形式得到结果的方法,但我尝试在 R 上进行>,我发现它更容易。

我将我的 postgres 数据库与 R 连接起来,然后我使用 reshape 包在我的表中执行一个数据透视表。

对于任何想使用我的方法的人来说,这就是我所做的。

首先将 R 连接到数据库。

library(RPostgreSQL)
#create driver
dDriver <- dbDriver("PostgreSQL")
#connect to the server
conn <- dbConnect(dDriver, user="user", password="mypassword", dbname="postgres")

然后使用 reshape 包

library(reshape)

获取表格

rs_CourseSales <- dbSendQuery(conn, 'SELECT * FROM CourseSales;')
dbRows_CourseSales <- fetch(rs_CourseSales, -1)

枢轴:

pivot_CourseSales<-(cast(dbRows_CourseSales,  Course ~ Year))

我发现这个例子非常有用: http://www.r-bloggers.com/pivot-tables-in-r/

关于sql - PostgreSQL 中的数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31275583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com