我想从我的数据库中提取某些信息。在进行第一次查询后,我得到了这样的结果:
Name Description Status Count
-------------------------------------------
A a-desc S1 200
A a-desc S2 50
A a-desc S3 102
B b-desc S1 10
B b-desc S3 12
我想将该表转换为另一个表:
Name Description S1 S2 S3
-------------------------------------------
A a-desc 200 50 102
B b-desc 10 0 12
我想用Postgres做到这一点。我尝试使用嵌套查询,但目前还没有。
答案 0 :(得分:1)
这是传统的"执行"枢轴查询的方式"使用大多数rdbms将支持的通用SQL:
select
Name
, Description
, max(case when status = 'S1' then count end) as S1
, max(case when status = 'S2' then count end) as S2
, max(case when status = 'S3' then count end) as S3
from (
your query goes here
) d
group by
Name
, Description
但是,您的数据库可能会为数据透视提供特定功能(如果我们知道它是什么),但传统方法具有适应性和有用性。