mysql 有pivot
时间: 2023-10-16 21:23:26 浏览: 78
PivotTable:从 MySQL 查询生成和呈现数据透视表
MySQL 并没有内置的 PIVOT 函数,但可以通过使用 GROUP BY 和 CASE WHEN 语句来实现类似于 PIVOT 的功能。具体实现方式可以参考以下代码示例:
```
SELECT
name,
MAX(CASE WHEN subject = 'Math' THEN score ELSE NULL END) AS Math,
MAX(CASE WHEN subject = 'English' THEN score ELSE NULL END) AS English,
MAX(CASE WHEN subject = 'Science' THEN score ELSE NULL END) AS Science
FROM
scores
GROUP BY
name;
```
以上代码将 scores 表按照 name 字段进行分组,然后通过 CASE WHEN 语句将每个科目的成绩转化为一列。最后通过 MAX 函数将每个科目的成绩汇总到每个人的一行中。
阅读全文