首页 > 解决方案 > 使用 PostgreSQL 计算年同比增长

问题描述

我正在使用一个名为 Superstore 的 SQL 数据集,我想弄清楚如何计算同比销售额增长的百分比。这是我已经拥有的代码:

SELECT 
EXTRACT(year FROM order_date) AS order_year,
SUM(sales) AS total_sales,
FROM orders
WHERE order_date BETWEEN date '2016-01-01' and date '2019-12-01'
GROUP BY 1
ORDER BY 1

欢迎任何帮助。谢谢你。

标签: sqlpostgresql

解决方案


我会在子查询中聚合,然后使用窗口函数:

SELECT *
FROM (SELECT total_sales / lag(total_sales) OVER (ORDER BY order_year) * 100.0,
             year
      FROM (SELECT CAST (EXTRACT(year FROM order_date) AS integer) AS order_year,
                   SUM(sales) AS total_sales
            FROM orders
            GROUP BY 1) AS subq
     ) AS subq2
WHERE year = 2021;

推荐阅读