我对 SQL 一无所知。我目前有一个查询可以给我这个。按周/期间/年按 channel /等分类的某些产品的销售额(请注意这是一个非常简化的版本,还有更多字段):
基本上我需要的是添加一个列来提供上一年的销售额。基本上,如下所示转换表格。在 Excel 中,这将是一个简单的 sumifs,它只对除了前一年的年份之外的完全相同的标准求和。
是否可以在 SQL 中执行此操作?数据集太大,无法在 Excel 中执行。
最佳答案
我想你只是想要lag()
:
select t.*,
lag(sales) over (partition by channel, product, weekno order by yearno) as prev_sales
from t;
如果我理解数据,那么 periodno
与 weekno
是多余的。
关于SQL 查询 - 计算上一年的销售额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59273604/