Id imame idvalue
1 name1 10
1 name2 20
2 name1 10
2 name2 20
2 name3 30
select id ,
sum(case idname when 'name1' then idvalue else 0 end ) as name1,
sum(case idname when 'name2' then idvalue else 0 end ) as name2,
sum(case idname when 'name3' then idvalue else 0 end) as name3
from test1
group by id