Mysql 列轉行統計查詢 行轉列統計查詢

2021-09-24 10:21:41 字數 1128 閱讀 2472

之前看過一篇博文寫得非常好,看後就很容易讓人理解,博文位址為:

最近在群裡又碰到乙個朋友說起,於是記錄一下:

假設表名為t.表裡有六個欄位p1,p2,p3,s1,s2,s3

現在想得到

p1=100 時s1值的總和

p2=100 時s2值的總和

p3=100 時s3值的總和

建立表:

create table `t` (

`id` int(11) not null auto_increment,

`s1` int(11) default null,

`s2` int(11) default null,

`s3` int(11) default null,

`p1` int(11) default null,

`p2` int(11) default null,

`p3` int(11) default null,

primary key (`id`)

) engine=myisam auto_increment=18 default charset=utf-8;

新增一些資料:

insert into t value(null, floor(rand()%10*100),floor(rand()%10*100),floor(rand()%10*100),100,100,100);

select 

sum(case p1 when 100 then s1 else 0 end) s1sum,

sum(case p2 when 100 then s2 else 0 end) s2sum,

sum(case p3 when 100 then s3 else 0 end) s3sum

from `t`;

最後自己對比下統計是否正確

select sum(s1) from t where p1 = 100;

select sum(s2) from t where p2 = 100;

select sum(s3) from t where p3 = 100;

Mysql 行轉列 列轉行

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

MySQL行轉列 列轉行

max case course when 數學 then score else 0 end 數學,max case course when 語文 then score else 0 end 語文,max case course when 英語 then score else 0 end 英語 fro...

MySQL 行轉列 列轉行

以下內容包括 行轉列 sql 執行效果展示 列轉行 sql 執行效果展示 總結 附上的建表語句 一 行轉列 廢話不多說,先上sql 兩種方式 行轉列 方法 select id,name,group concat case when subject 語文 then score end separato...