mysql pivot示例
时间: 2023-08-25 14:17:36 浏览: 91
在MySQL中,没有内置的PIVOT函数,但可以使用条件语句和聚合函数来执行pivot操作。以下是一个示例,展示了如何使用联结和条件语句来执行pivot操作:
假设我们有以下表格:
```
+----+-------------+-------+
| id | column_name | value |
+----+-------------+-------+
| 1 | col1 | 10 |
| 1 | col2 | 20 |
| 1 | col3 | 30 |
| 2 | col1 | 40 |
| 2 | col2 | 50 |
| 2 | col3 | 60 |
+----+-------------+-------+
```
现在我们想要将这些列转换为行,可以使用以下查询来实现pivot操作:
```
SELECT id,
MAX(CASE WHEN column_name = 'col1' THEN value END) AS col1,
MAX(CASE WHEN column_name = 'col2' THEN value END) AS col2,
MAX(CASE WHEN column_name = 'col3' THEN value END) AS col3
FROM your_table
GROUP BY id;
```
这将产生以下结果:
```
+----+------+------+------+
| id | col1 | col2 | col3 |
+----+------+------+------+
| 1 | 10 | 20 | 30 |
| 2 | 40 | 50 | 60 |
+----+------+------+------+
```
通过使用条件语句和聚合函数,我们可以将不同的column_name值作为列名,并将对应的value进行聚合,实现将列转换为行的pivot操作。在上面的示例中,我们使用了MAX函数来聚合值,因为在每个id中,同一列只会有一个非空值。如果存在多个非空值,则可以根据需求选择其他聚合函数,如SUM、AVG等。
阅读全文