目前,我有以下格式的表m
一排輸出:交叉表函數返回時,我希望多行
id scenario period ct
2 1 1 1
2 1 2 1
2 1 3 1
2 1 4 1
2 2 1 1
2 2 2 1
2 2 3 1
2 2 4 1
2 3 1 1
2 3 2 1
2 3 3 1
2 3 4 1
我想創建下表:
id scenario period 1 2 3 4
2 1 1 1
2 1 2 1
2 1 3 1
2 1 4 1
2 2 1 1
2 2 2 1
2 2 3 1
2 2 4 1
2 3 1 1
2 3 2 1
2 3 3 1
2 3 4 1
tablefunc擴展已經在我的Postgres數據庫中創建。我目前正在嘗試使用crosstab()
函數來完成數據透視。但是,我得到一個表,如下所示:
id scenario period 1 2 3 4
2 1 1 1 1 1 1
我試着查詢:
SELECT * FROM crosstab(
'SELECT id, scenario, period, ct FROM m
ORDER BY 1',
'SELECT DISTINCT period FROM m
ORDER BY 1')
AS (id, scenario, period, 1, 2, 3, 4);
您提出的查詢明顯無效。 (列定義列表缺少數據類型)。什麼是您嘗試的實際查詢? –
我的數據集要大得多,但我想要一個更簡單的例子來展示。我認爲更準確的查詢是: SELECT * FROM交叉( \t \t 'SELECT ID,場景,期間,CT的M \t \t \t ORDER BY 1', \t \t「SELECT DISTINCT期的M \t AS(int int,scenario int,period int,「1」int,「2」int,「3」int,「4」int); –