1. 程式人生 > >MySQL 使用group by和case when 的兩個例子

MySQL 使用group by和case when 的兩個例子

例子1

create table testScore    
(       
   tname varchar(30) null,    
   ttype varchar(10) null,    
   tscor int null   
);    

insert into testScore values ('張三','語文',80);   
insert into testScore values ('張三','數學',98);    
insert into testScore values ('張三','英語',65);    
insert into testScore values
('李四','語文',70);
insert into testScore values ('李四','數學',80); insert into testScore values ('李四','英語',90); select tname as '姓名' , max(case ttype when '語文' then tscor else 0 end) '語文', max(case ttype when '數學' then tscor else 0 end) '數學', max(case ttype when '英語'
then tscor else 0 end) '英語' from testScore group by tname

結果為:

姓名 語文 數學 英語
李四 70 80 90
張三 80 98 65

例子2

select 
      tname as '姓名',
      case
          when ttype='數學' then '理科'
          else '文科'
      end as '科別',
      sum(tscor) as '總分'
from testscore
group
by tname, case when ttype='數學' then '理科' else '文科' end

結果為:

姓名 科別 總分
李四 文科 160
李四 理科 80
張三 文科 145
張三 理科 98