【发布时间】:2026-02-07 16:15:01
【问题描述】:
我有下表:
我想对此进行旋转并得到以下结果:
Table_name Column_name Values ddmf_etl_id
"PROFITCENTERID" "CO_AREA" "DE02" 16807487
"PROFITCENTERID" "PROFIT_CTR" "0000001119" 16807487
"PROFITCENTERID" "CO_AREA" "DE02" 16807488
"PROFITCENTERID" "PROFIT_CTR" "0000001120" 16807488
很遗憾,由于 CROSSTAB 的参数数量有限 (3),我未能通过以下选择做到这一点:
SELECT 'PROFITCENTERID' AS table_name,t.*
FROM
crosstab(
'SELECT unnest(''{CO_AREA,PROFIT_CTR}''::text[]) AS col
, row_number() OVER ()
, unnest(ARRAY[CO_AREA::text,PROFIT_CTR::text]) AS val
FROM "1".PROFITCENTER_PROFITCENTERID'
) t (column_name text, values text);
select 语句的结果(错误):
Postgresql 中是否有其他替代 Crosstab 的方法?或者也许可以用 Crosstab 做到这一点?
感谢任何帮助!谢谢!
【问题讨论】:
-
将“转置”行作为单个 JSON 值返回的替代方案怎么样?与此类似:*.com/a/55160032
标签: postgresql pivot crosstab