【发布时间】:2015-11-24 16:09:53
【问题描述】:
我会尽量用最好的语言来表达,所以请多多包涵。我正在从 Greenplum PostgreSQL 中的 15 个字段中提取数据。这些字段可能包含也可能不包含我要取消嵌套到新字段中的数字。如果该字段确实包含数字,我需要确定该值来自哪个字段,以便我可以根据数据来自哪个字段填充其他字段。
这是我的查询以获得更好的解释:
SELECT geo_zone, customer___global, field3, customer_type,
business_segment, product_business_line , product_brand, product_family,
license_type, license_status_sap, field11,
unnest(array[
field_2011_qtr_4_seat_qty_um ,
field_2012_qtr_1_seat_qty_um ,
field_2012_qtr_2_seat_qty_um ,
field_2012_qtr_3_seat_qty_um ,
field_2012_qtr_4_seat_qty_um ,
field_2013_qtr_1_seat_qty_um ,
field_2013_qtr_2_seat_qty_um ,
field_2013_qtr_3_seat_qty_um ,
field_2013_qtr_4_seat_qty_um ,
field_2014_qtr_1_seat_qty_um ,
field_2014_qtr_2_seat_qty_um ,
field_2014_qtr_3_seat_qty_um ,
field_2014_qtr_4_seat_qty_um ,
field_2015_qtr_1_seat_qty_um ,
field_2015_qtr_2_seat_qty_um ,
field_2015_qtr_3_seat_qty_um ]) as seat_qty_um
FROM table
根据上面的查询,我需要在结果中再创建 2 个字段:YEAR 和 PERIOD。如果 seat_qty_um 的值来自数组中的第一个字段 field_2011_qtr_4_seat_qty_um,我需要在 YEAR 字段中填充 2011 并在 PERIOD 中填充 4。
如果 seat_qty_um 的值来自数组中的第二个字段 field_2012_qtr_1_seat_qty_um,我需要在 YEAR 字段中填充 2012,在 PERIOD 中填充 1,依此类推。
我无法在搜索中找到任何内容。有没有最好的方法来实现这个?
【问题讨论】:
标签: arrays postgresql pivot greenplum