如何在PostgreSQL 9.3中获取数据透视表而不在外括号中指定内部sql列
目前,我正在使用PostgreSQL Plus Advance Server 9.3,我有一个如下表:-如何在PostgreSQL 9.3中获取数据透视表而不在外括号中指定内部sql列,postgresql,postgresql-9.3,Postgresql,Postgresql 9.3,目前,我正在使用PostgreSQL Plus Advance Server 9.3,我有一个如下表:- Section Status ct A Active 1 A Inactive 2 B Active 4 B Inactive 5 我使用下面的查询得到透视表:- SELECT * FROM crosstab(
Section Status ct
A Active 1
A Inactive 2
B Active 4
B Inactive 5
我使用下面的查询得到透视表:-
SELECT * FROM crosstab(
'SELECT section, status, ct
FROM t
ORDER BY 1,2',$$VALUES ('Active'), ('Inactive')$$)
AS ct ("Section" text, "Active" int, "Inactive" int);
Section Active Inactive
A 1 2
B 4 5
所以我的问题是,在ct()
中不指定输入sql查询列名(即“Section”text
)是否可以获得相同的输出。谢谢
我的意思是我希望使用如下查询获得相同的输出:
SELECT * FROM crosstab(
'SELECT section, status, ct
FROM t
ORDER BY 1,2',$$VALUES ('Active'), ('Inactive')$$)
AS ct ("Active" int, "Inactive" int);
在第二个示例中,您要求从交叉表中输入两列,而不是三列-我不太确定您想要实现什么。@Richard我想说的是,我想要“select语句”和“$$values语句$$”的所有列,即“section,Active,Inactive”,只需将“$$values$$”列名写入ct()中,如ct(“Active”int,“Inactive”int)就像sql server pivot queryAh中发生的情况一样,您试图让“内部”列名显示出来吗?不,我认为没有一种方法可以做到这一点,而不将交叉表调用包装到另一个函数中。@Richard感谢您的快速响应,您的意思是没有办法做到这一点。