एक तरीका एक समग्र प्रकार का उपयोग करना होगा:
CREATE TYPE i2 AS (a int, b int);
या, तदर्थ उपयोग के लिए (सत्र की अवधि के लिए प्रकार पंजीकृत करता है):
CREATE TEMP TABLE i2 (a int, b int);
फिर क्रॉसस्टैब चलाएं जैसा कि आप जानते हैं और समग्र प्रकार को विघटित करें:
SELECT client_id
, (a0).a AS a0_cur_val, (a0).b AS a0_fut_val
, (a1).a AS a1_cur_val, (a1).b AS a1_fut_val
, (a2).a AS a2_cur_val, (a2).b AS a2_fut_val
FROM crosstab(
'SELECT client_id, asset_type, (current_value, future_value)::i2
FROM foo
ORDER BY 1,2'
,'SELECT * FROM generate_series(0,2)'
) AS ct (client_id int, a0 i2, a1 i2, a2 i2);
सभी कोष्ठक आवश्यक हैं !
crosstab()
. के लिए मूल बातें :