使用 PIVOT 和 Group By 聚合直方图?

Using PIVOT and Group By to Aggregate histograms?

我在 SQL 服务器中有一个 table 包含大量二维直方图(每个直方图包含 32 个索引和值)如下:

这些直方图按时间序列记录,这意味着在每个特定日期我们都有一个具有唯一 ID 的直方图。我想获得这些直方图的平均值——每周——。这意味着对于一个月的每一周(如果那一周有数据),我想为每个唯一 ID 制作一个直方图。然后我想把这两个2d直方图转换成1d。最后,我想要的 table 应该有一行对应包含直方图值的每个唯一 ID。例如,我想在结尾处添加以下 table:

   ID             Date (year), Month , week , index1 , index2,  ... , Index31 , Index32
   273854048        2019     ,   4   ,  1   ,   23   ,  234  ,  ... ,    0    ,  95.00
   287092805        2019     ,   4   ,  4   ,   0.0  ,  95.0 ,  ... ,    43   ,   64
   ...             ...

好像应该用PIVOT和group by,但是好像很复杂

一个简单的枢轴子句就可以解决问题。

列将是 ID, Date, 1, 2, 3....

SELECT pvt.*
FROM YourTable t
PIVOT (
    MIN(t.[Value]) FOR t.[Index] IN
      ([1]),([2]),([3]),([4]),([5]),([6]),([7]),([8]),([9]),([10]),([11]),([12]),([13]),([14]),([15]),([16]),([17]),([18]),([19]),([20]),([21]),([22]),([23]),([24]),([25]),([26]),([27]),([28]),([29]),([30]),([31]),([32])
) pvt

如有必要,您可以添加相关的ORDER BY