I am working on a table like below:
class | parameter | value |
---|---|---|
A | name | John |
A | city | NY |
A | year | 2022 |
B | name | ANNA |
B | city | NM |
B | year | 2021 |
I want to save it in new table like this:
class | name | city | year |
---|---|---|---|
A | John | NY | 2022 |
B | ANNA | NM | 2021 |
CodePudding user response:
Here is a solution with Sql Server using pivot
.
select *
from t
pivot (max(value) for parameter in([name], [city], [year])) pvt
class | name | city | year |
---|---|---|---|
A | John | NY | 2022 |
B | ANNA | NM | 2021 |
CodePudding user response:
Here's a solution with Postgres using crosstab
select *
from crosstab(
'select class, parameter, value
from t')
as t(class text, name text, city text, year text);
class | name | city | year |
---|---|---|---|
A | John | NY | 2022 |
B | ANNA | NM | 2021 |