一个表内容如下:
ID Name Subject Mark
1 张三 语文 80
1 张三 数学 70
1 张三 英语 90
2 李四 语文 60
2 李四 数学 40
2 李四 英语 50
用一句sql语句实现如下效果:
ID Name 语文 数学 英语
1 张三 80 70 90
2 李四 60 40 50
自己写了一个,效果实现了,大家给批评指正一下:
select id, name ,
sum(if(subject='语文',mark,0)) as 语文,
sum(if(subject='数学',mark,0)) as 数学,
sum(if(subject='英语',mark,0)) as 英语
from student
group by id, name