मूल डेटा
________________
|col1 |col2|col3|
________________
|A | X | 1 |
________________
|A | Y | 5 |
________________
|B | X | 2 |
________________
|B | Y | 6 |
________________
|C | Y | 7 |
________________
वांछित आउटपुट
_______________
|col1| X | Y |
_______________
|A | 1 | 5 |
_______________
|B | 2 | 6 |
_______________
|C |NULL| 7 |
_______________
उत्तर:
उत्तर № 1 के लिए 1आपके उदाहरण के लिए एक क्रॉसस्टैब () क्वेरी इस तरह दिखाई देगी:
SELECT col1
, col2 AS "X"
, col3 AS "Y"
FROM crosstab(
"SELECT col1 , col2, col3
FROM table
ORDER BY 1"
,$$VALUES ("X"::text), ("Y")$$
) AS ct (
col1 int
, col2 numeric -- use actual data type!
, col3 numeric);
इस संबंधित उत्तर में स्पष्टीकरण और लिंक: PostgreSQL Crosstab क्वेरी
जवाब के लिए 0 № 2
एक विधि सशर्त एकत्रीकरण है:
select col1,
max(case when col2 = "X" then col3 end) as x,
max(case when col2 = "Y" then col3 end) as y
from t
group by col1;