【问题标题】:Very simple pivot in PostgreSQLPostgreSQL 中非常简单的枢轴
【发布时间】:2017-03-16 20:15:12
【问题描述】:

我有一些描述更广泛数据集的数据。它以三列的格式给出;字段、字段类型、注释。然后每一行都是字段之一。我想要做的是旋转第一列,以便行成为我将加载数据的列。我一直在使用交叉表查看创建表函数,但到目前为止,我尝试过的输出只是重新排序了我的行;

SELECT * 
FROM crosstab( 'select field, fieldtype, notes FROM 
databasestructure order by 1,2') 
AS final_result(field TEXT, fieldtype text,notes text);'

【问题讨论】:

  • 请编辑问题并添加示例数据和预期结果。

标签: postgresql pivot-table crosstab


【解决方案1】:

你需要安装这个扩展:

CREATE EXTENSION tablefunc

那么你需要写下你的字段类型名称或别名:

SELECT * 
FROM crosstab( 'select field, fieldtype, notes FROM 
databasestructure order by 1,2') 
AS final_result(field TEXT, fieldtype1 text,fieldtype2 text,fieldtype3 text);

您应该首先确定字段类型的编号,以便设置您的类别列名称。无论您的值类型是什么,都要小心,这将是您的类别列的类型。在此示例中,您的字段是文本,因此您的 fieldtype1..2..3 将具有文本值。

select distinct fieldtype
FROM databasestructure

看看这个crosstab example

另一个有用的链接。解释在more details

为了给你一个期望输出的答案,我需要你表中的数据。

【讨论】:

    猜你喜欢
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多