turn the distinct value of columns into a rows postgres

前端 未结 1 514
Happy的楠姐
Happy的楠姐 2021-01-28 15:20

I have a schema like:

 [ad_id] . [name] . [valueofname]
   1 .       name .   \"brian\"
   1 .       age  .    \"23\"
   2 .       job  .    \"IT\"
   2 .                


        
相关标签:
1条回答
  • 2021-01-28 15:52

    You can use conditional aggregation:

    select ad_id,
           max(case when name = 'name' then valueofname end) as name,
           max(case when name = 'age' then valueofname end) as age,
           max(case when name = 'birthday' then valueofname end) as birthday,
           max(case when name = 'job' then valueofname end) as job
    from t
    group by ad_id;
    

    In SQL Server, you can also do something similar with pivot.

    0 讨论(0)
提交回复
热议问题