Mysql將學生分數行轉列並求和

2022-05-07 06:45:12 字數 1763 閱讀 6709

建表

create

table

`score` (

`id`

int(5) not

null

auto_increment,

`name`

varchar(20) null

default

null collate '

utf8_general_ci',

`obj`

varchar(20) null

default

null collate '

utf8_general_ci',

`fenshu`

int(10) null

default'0

',primary

key(`id`) using btree

)collate='

utf8_general_ci

'engine

=innodb

auto_increment=11

;

插入資料

insert

into `test`.`score` (`name`, `obj`, `fenshu`) values ('

李四', '

語文', '40'

);insert

into `test`.`score` (`name`, `obj`, `fenshu`) values ('

李四', '

數學', '50'

);insert

into `test`.`score` (`name`, `obj`, `fenshu`) values ('

李四', '

英語', '60'

);insert

into `test`.`score` (`name`, `obj`, `fenshu`) values ('

張三', '

語文', '10'

);insert

into `test`.`score` (`name`, `obj`, `fenshu`) values ('

張三', '

數學', '20'

);insert

into `test`.`score` (`name`, `obj`, `fenshu`) values ('

張三', '

英語', '

30');

資料為:

執行行轉列查詢:

select

name,

sum(case

when obj ='語文

'then fenshu else

0end) as'語文

',sum(case

when obj ='數學

'then fenshu else

0end) as'數學

',sum(case

when obj ='英語

'then fenshu else

0end) as'英語

',sum(fenshu)

from

score

group

byname

查詢結果為:

mysql 動態行轉列 MySQL行轉列

比如乙個單子,多個收據單用逗號隔開,怎麼把這乙個單子所有收據單獨展示出來,行轉成列呢?方法一 這裡需要用到迴圈,首先建立乙個1 10的序列 select rownum rownum 1 as seq from select rownum 0 r,bills limit 0,10 其次依次運用 sub...

學生分數的最小差值

leetcode 給你乙個 下標從 0 開始 的整數陣列 nums 其中 nums i 表示第 i 名學生的分數。另給你乙個整數 k 從陣列中選出任意 k 名學生的分數,使這 k 個分數間 最高分 和 最低分 的 差值 達到 最小化 返回可能的 最小差值 示例 1 輸入 nums 90 k 1 輸出...

mysql行轉列 subs mysql 行轉列

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