根据学生成绩表 score 统计信息,纵表转横表
时间: 2024-03-02 14:50:21 浏览: 85
好的,可以使用 SQL 语句实现纵表转横表的操作,具体如下:
假设学生成绩表 score 的结构如下:
| stu_id | subject | score |
|--------|---------|-------|
| 1 | math | 80 |
| 1 | english | 90 |
| 2 | math | 85 |
| 2 | english | 92 |
| 3 | math | 90 |
| 3 | english | 95 |
我们可以使用如下 SQL 语句将其转换为横表:
```
SELECT
stu_id,
MAX(CASE WHEN subject = 'math' THEN score ELSE NULL END) AS math_score,
MAX(CASE WHEN subject = 'english' THEN score ELSE NULL END) AS english_score
FROM score
GROUP BY stu_id;
```
转换后的结果如下:
| stu_id | math_score | english_score |
|--------|------------|---------------|
| 1 | 80 | 90 |
| 2 | 85 | 92 |
| 3 | 90 | 95 |
其中,使用 CASE WHEN 语句将不同科目的成绩进行分组,再使用 MAX 函数将其合并为一行,最后使用 GROUP BY stu_id 将不同学生的信息合并为多行。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)