Drop table ABC;
Create table ABC (id number, name varchar2 (50), kcName varchar2 (50), score number );
Insert into ABC values (1, 'zhang san', 'China', 88 );
Insert into ABC values (2, 'zhang san', 'mat', 68 );
Insert into ABC values (3, 'zhang san', 'English ', 78 );
Insert into ABC values (4, 'Li si', 'English ', 78 );
Insert into ABC values (5, 'Li si', 'China', 88 );
Insert into ABC values (6, 'lily', 'mat', 79 );
Insert into ABC values (7, 'wang wu', 'English ', 74 );
Insert into ABC values (8, 'wang wu', 'China', 58 );
Insert into ABC values (9, 'wang wu', 'mat', 98 );
Select * from abc;
Select abc. Name, sum (decode (kcName, 'China', SCORE, null) language,
Sum (decode (kcName, 'mat', SCORE, null) mathematics,
Sum (decode (kcName, 'English ', SCORE, null) English
From abc group by abc. name;
Result:
NAME Chinese Mathematical English
1 Wang Wu 158 198 174
2 Li Si 188 179 178
3 Zhang San 188 168 178