1.建立資料庫表,為表字段添加資料
#建立資料庫表結構
create table tb_student_grade(
id int(10) not null auto_increment primary key,
s_name varchar(20) default null,
course varchar(20) default null,
score float default '0'
);
#初始化資料
insert into tb_student_grade (s_name,course,score)
VALUES
('張三','國文',85),
('張三','數學',92),
('戰三','英語',87),
('李四','國文',96),
('李四','數學',89),
('李四','英語',100),
('王五','國文',91),
('王五','數學',83),
('王五','英語',98);
表資料示意圖
2.對資料進行列轉行操作
select s_name,
avg(if(course='國文',score,null)) 國文,
avg(if(course='數學',score,null)) 數學,
avg(if(course='英語',score,null)) 英語
from tb_student_grade
group by s_name;
查詢結果:
列轉行
右邊表為原表,下方為進行行轉列後表資料,上方為列轉行語句