mysql sql語句 行轉列問題

2021-10-01 13:04:09 字數 1596 閱讀 5740

**:

mysql sql語句:行轉列問題

1、建立表

create tabletest_tb_grade(

idint(10) not null auto_increment,

namevarchar(20) default null,

coursevarchar(20) default null,

scorefloat default 『0』,

primary key (id)

) engine=innodb auto_increment=1 default charset=utf8;

2、插入資料

insert into test_tb_grade(name, course, score) values

(「張三」, 「數學」, 34),

(「張三」, 「語文」, 58),

(「張三」, 「英語」, 58),

(「李四」, 「數學」, 45),

(「李四」, 「語文」, 87),

(「李四」, 「英語」, 45),

(「王五」, 「數學」, 76),

(「王五」, 「語文」, 34),

(「王五」, 「英語」, 89);

存在表test_tb_grade,記錄學生的考試成績,如下圖所示:

現要求以 學生姓名,語文,數學,英語 這種格式顯示學生成績,如下圖所示

1、首先,使用case when函式輸出單個課程的成績

select name,

case when course='語文' then score end as '語文',

case when course='數學' then score end as '數學',

case when course='英語' then score end as '英語'

2、使用group by 和sum,去掉null得出課程的成績

select name,

sum(case when course=『語文』 then score end) as 『語文』,

sum(case when course=『數學』 then score end) as 『數學』,

sum(case when course=『英語』 then score end) as 『英語』

MySQL行轉列sql語句

create table test tb grade id int 10 notnull auto increment user name varchar 20 default null course varchar 20 default null score float default 0 pri...

sql 行轉列問題

題目 下表tproduct某產品在各城市各月銷量情況 city name month no 月 qut qty 臺 杭州 9 100 杭州 10 120 上海 9 130 上海 10 140 請寫sql實現 如下查詢 city 9月銷量 10月銷量 杭州 100 120 上海 130 140 答案一...

sql行轉列問題

mysql sql語句 行轉列問題 存在表score,記錄學生的考試成績,如下圖所示 現要求以 學生姓名,語文,數學,英語 這種格式顯示學生成績,如下圖所示 具體步驟如下 1 首先,使用case when函式輸出單個課程的成績 case when course 語文 then score end a...