sql - 使用 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
欢迎任何帮助。谢谢你。
解决方案
我会在子查询中聚合,然后使用窗口函数:
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;
推荐阅读
- xml - 如何从特定节点克隆所有子节点
- java - 将 UUID 作为 blob 转换为正确的字符串 id hibernate
- cordova - 从 Cordova 到 Flutter 的迁移路径
- c# - 调用亚马逊客户端时如何设置默认位置
- azure-devops - Team City 迈向 Azure DevOps YAML
- rapidjson - kTrueType 和 kFalseType 之间的 RapidJson 区别
- python - 如何在 Python 中从装饰器中读取函数属性
- node.js - OpenID Connect - 隐式流随机数
- powerapps - 计算来自 DatasourceB 的基于 DatasourceA 的值的记录
- visual-studio - Visual Studio 2019 的 Doxygen 存根生成器