MySql-数据透视表

标签 mysql sql pivot-table

我有一个包含记录的数据库表(return_period)

id  ReturnPeriod    Value   Date
1   10              10X     11/1/2012
2   20              20x     11/1/2012
3   30              30x     11/1/2012
4   10              10xx    12/1/2013
5   20              20xx    12/1/2013
6   30              30y     1/1/2015
7   30              303     1/1/2015

并期望输出表如下所示:

Date      Rp10_Value    Rp20_Value  Rp30_Value
11/1/2012    10x          20x         30x
12/1/2013    10XX         20XX  
1/1/2015                              30y
1/1/2015                              303

我想要基于日期的记录(想要多条记录)。有没有办法可以针对此类需求编写查询。谢谢

最佳答案

select date,
case when rp=10 then value else null end as Rp10_Value,
case when rp=10 then value else null end as Rp20_Value,
case when rp=10 then value else null end as Rp30_Value

from
(
SELECT date, value,  ReturnPeriod
FROM Table2 where ReturnPeriod=10
union all
SELECT date, value,  ReturnPeriod
FROM Table2 where ReturnPeriod=20
union all
SELECT date, value,  ReturnPeriod
FROM Table2 where ReturnPeriod=30
) ;

关于MySql-数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46431454/

相关文章:

php - 从表中获取所有特定结果,并将它们存储到数组中

sql - 如何从2个表中选择数据并将NULL转换为0?

google-sheets - 如何在同一张工作表中拥有多个数据透视表?

python - 以列为地平线的 Pandas 数据透视表

python - 旋转并重命名 Pandas 数据框

mysql - 对带有转义字符的类似 mysql 的查询感到困惑?

mysql - 将值序列插入单列

php - 如果我将 PouchDB 用于移动应用程序,是否必须将 Mysql 替换为 CouchDB?

php - MySql 查询使用两个带内连接的表(我认为)

php - 绑定(bind)一个并不总是设置的参数