网上有道关于sql的题目:
有如下A、B两个表,如何将A表的数据查询出来,结果如B所示?
A表:
姓名 | 科目 | 分数 |
张三 | 语文 | 60 |
李四 | 数学 | 65 |
张三 | 英语 | 70 |
张三 | 数学 | 75 |
李四 | 语文 | 80 |
李四 | 英语 | 68 |
B表:
姓名 | 语文 | 数学 | 英语 | 总分 |
张三 |
|
|
|
|
李四 |
|
|
|
|
解决思路:
SELECT student_name,sum(case when course='Chinese' then score end) Chinese,sum(case when course='English' then score end) English,
sum(case when course='Math' then score end) Math,sum(score) total_socre FROM A GROUP by student_name
改题目主要是学习到了sql中:case when ... then ... else ... end的用法