天天看點

資料庫中的行轉列 與 列轉行

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;

           

查詢結果:

資料庫中的行轉列 與 列轉行
列轉行

右邊表為原表,下方為進行行轉列後表資料,上方為列轉行語句

資料庫中的行轉列 與 列轉行

繼續閱讀