mysql - 将列转换为行并创建新列?

标签 mysql sql pivot-table

我有下表

Col_1 Col_2 Col_3     Date
 0.1   0.2   0.3   2013-08-13
 0.4   0.5   0.6   2013-08-12

我想要以下内容:

   Date          New Column        Value
2013-08-13        Col_1             0.1
2013-08-13        Col_2             0.2
2013-08-13        Col_3             0.3
2013-08-12        Col_1             0.4
2013-08-12        Col_2             0.5  
2013-08-12        Col_3             0.6

因此,我不仅要转置表,还要添加一个新列,它告诉我值来自的列名称。我尝试做一个 UNION..但它不起作用:(

谢谢!

最佳答案

你可以这样:

INSERT INTO NEW_TABLE_NAME (Date, `New Column`, Value)

SELECT    DATE, 'Col_1', Col_1

FROM      OLD_TABLE_NAME


UNION ALL


INSERT INTO NEW_TABLE_NAME (Date, `New Column`, Value)

SELECT    DATE, 'Col_2', Col_2

FROM      OLD_TABLE_NAME


UNION ALL


INSERT INTO NEW_TABLE_NAME (Date, `New Column`, Value)

SELECT    DATE, 'Col_3', Col_3

FROM      OLD_TABLE_NAME;

关于mysql - 将列转换为行并创建新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18283706/

相关文章:

sql - 使用 JOIN 和限制构建 SQL 查询

excel - 使用共享缓存刷新一个枢轴

mysql - 将大型 CSV 文件导入 MySQL Workbench

mysql - 如何使现有的自动增量索引成为MySQL中的聚集索引?

php - 如何将用户重定向到login.php并让它通过sqldatabase进行验证,如果那么用户可以直接下载链接

php - 优化网站sql查询

php - Laravel 同步多对多关系

php - 复杂报表需要结构最优的连接查询

php - 在 mysql 中选择每周明智的日期

mysql - 当该表中的列不可用时如何按 ASC 进行排序