0

我正在尝试在 SQL 中使用 partition-by 来评估复杂值

它是从过去 56 到 4 周窗口到给定一周的数据量的总和。

表的属性:Product、Shop、Week、Category、Volume

数据:超过150周的数据,

目标:选择“CategoryWeekVolume”的值,这是给定类别过去 56-4 周的交易量总和。

尝试过:我已经在多种组合中尝试过 case-whens,over-partition-by,但在 SQL 方面我不是那么有经验,而且我不知道如何以聪明的方式做到这一点,而不添加 52体积从第 4 周到第 56 周的列。

一般情况是 t0.[WEEK]-t1.[WEEK]>4 and t0.[WEEK]-t1.[WEEK]<57 ,总和应该是每个类别。

我真的很感激任何投入。

4

1 回答 1

0

假设WeekINT

SELECT 
  Category,
  Week, 
  SUM(Volume) AS CategoryWeekVolume 
FROM 
  tablename
WHERE 
  Week 
  BETWEEN 
    (SELECT MAX(Week) FROM tablename) - 56 
    AND
    (SELECT MAX(Week) FROM tablename) - 4 
GROUP BY Category, Week
于 2018-12-21T13:17:22.967 回答