mysql - 通用 SQL/MySQL 将行转换为列

标签 mysql sql pivot

我目前在尝试使用 MySQL 对表进行透视时遇到了一些困难。

表格本身的简化版本可能类似于:

 dayName      amount
---------------------
Monday         34
Tuesday        3453
...            ...

理想情况下,我希望能够将每一天变成一列,并将每个金额作为其值。 关于以干净的方式进行操作有什么建议吗?

谢谢!

最佳答案

如果你的行总是一周中的几天,那么你可以使用这样的东西:

select 
sum(case when dayName = 'Monday' then amount end) as 'Monday',
sum(case when dayName = 'Tuesday' then amount end) as 'Tuesday' 
.
.
.
from DaysOfWeek;

不幸的是,MySQL 没有PIVOT 函数。

http://sqlfiddle.com/#!9/c1a11/6

关于mysql - 通用 SQL/MySQL 将行转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39965756/

相关文章:

sql - 如何(预加载)自定义列上的联接表?

php - 如何将 MySQL 行折叠为列结果

vb.net 中的 mysql avg() 函数

c# - 一个查询中的 Odbc 和 Sql 连接

sql - 为客户生成 SQL 升级脚本

r - 如何使用pivot_longer保存到多列?

mysql - 如何将一个表值显示为表行并显示另一表中的值

mysql - 检查日期字段是否是 MySQL 5 中间隔的倍数

python - 无法解析模板中的剩余部分

php - 在 MySQL 数据库中保存随机问题和答案的最佳方法