SQL 查询 - 计算上一年的销售额

标签 sql

我对 SQL 一无所知。我目前有一个查询可以给我这个。按周/期间/年按 channel /等分类的某些产品的销售额(请注意这是一个非常简化的版本,还有更多字段): enter image description here

基本上我需要的是添加一个列来提供上一年的销售额。基本上,如下所示转换表格。在 Excel 中,这将是一个简单的 sumifs,它只对除了前一年的年份之外的完全相同的标准求和。

是否可以在 SQL 中执行此操作?数据集太大,无法在 Excel 中执行。

enter image description here

最佳答案

我想你只是想要lag():

select t.*,
       lag(sales) over (partition by channel, product, weekno order by yearno) as prev_sales
from t;

如果我理解数据,那么 periodnoweekno 是多余的。

关于SQL 查询 - 计算上一年的销售额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59273604/

相关文章:

php - 选择字符串中最长子串的行

php - 如何使用dreamweaver在MySQL中插入值

mysql - 如何在 IN 子句 sql 中使用限制

mysql - 将列添加到 mysql 查询并为其赋值

sql - SQL 查询的意外结果

php - 如何从mysql中的原始数据中仅选择第一行

SQL 条件选择

sql - 如何通过分组和计数在 SSIS 中获得所需的输出?

sql - SQL 查询中选择的语法

php - 非常感谢这个SQL查询语句有什么问题