相关疑难解决方法(0)

使用 PIVOT 将单年列和多周列转换为单年/周列

我有一张大致像这样的桌子。

(Pk int, Year int, Week1, Week2, .., Week53)

每个“周”列中的值是销售数据。我想要做的是从第一个表格中创建一个新表格 -

(PK int, WeekYear, SalesData)

其中“WeekYear”是年份和周数的串联,SalesData 是前一个表中相应字段的相同 salesdata。(只是想暂时取消选择)

SELECT pk,
   [1],
   [2],
   ...
   [1000]
 FROM (SELECT * FROM SalesTable) st
PIVOT
(
AGGREGATE(pk) -- no idea what to use here
FOR pk IN [1],
   [2],
   ...
   [1000]
 );
Run Code Online (Sandbox Code Playgroud)

我目前的尝试毫无意义,因为我不确定要在我的数据集上应用哪个聚合函数。我在辨别创建新专栏 YearWeek 的最佳方式时也遇到了一些麻烦。

这似乎是PIVOT 的一个明显用途(我需要转置表格)。但是,我在思考如何正确完成它时遇到了很多麻烦。这样做的最佳方法是什么?

sql-server t-sql unpivot

4
推荐指数
1
解决办法
695
查看次数

标签 统计

sql-server ×1

t-sql ×1

unpivot ×1