建表
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...