【发布时间】:2015-01-30 17:02:32
【问题描述】:
我使用的是 SQL Server 2008
我有一张表 MainTable 有 3 列 Date、Parameter、Value。
样本数据:
Date Parameter Value
-------------+--------------+-------
01-Jan-2010 | Temperature | 30
01-Jan-2010 | SnowLevel | 2
01-Jan-2010 | Humidity | 60
02-Jan-2010 | Temperature | 32
02-Jan-2010 | SnowLevel | 5
现在我想编写一个查询,将这个时间序列数据转换为下表,每个参数都有一个单独的列:
Date, Temperature, SnowLevel, Humidity
使用以下数据:
Date Temperature SnowLevel Humidity
------------+----------------+-------------+----------
01-Jan-2010 | 30 | 2 | 60
02-Jan-2010 | 32 | 5 | NULL
我知道 SQL Server 有很多处理时间序列的功能,但我找不到任何可以进行这种转换的基本功能。我找到了数十篇关于使用 DMX 进行数据预测的文章,但没有一篇关于这些基本内容的文章。
一种直接的方法是将这个表与每个参数(/列)本身连接起来,但我有数百个不同的参数,这种方法在我的情况下肯定行不通。
非常感谢任何帮助!
【问题讨论】:
-
搜索
pivot in sql server。 -
EAV 表是要避免的设计:simple-talk.com/sql/database-administration/…
标签: sql-server sql-server-2008 dmx-ssas