sql - 查找每月销售额增长百分比的方法
问题描述
我想使用 SQL Server 查找月销售额的百分比增长。我想通过使用自连接和使用前面无界行的分区来找到销售额的 % MoM 增长。我不想使用lag()
. 谁能让我知道生成此解决方案的方法。
这是我的桌子。
create table growth_new(slno bigint,mon varchar(30),sales_amount bigint)
insert into growth_new values(1, 'Jan', 5000)
insert into growth_new values(2, 'Feb', 12000)
insert into growth_new values(3, 'Mar', 32000)
insert into growth_new values(4, 'Apr', 20000)
Slno Mon sales_amount
1 Jan 5000
2 Feb 12000
3 Mar 32000
4 Apr 20000
解决方案
除非您想尝试其他替代方案,否则您可以真正使用滞后功能。同样如上所述,您的月份格式并不理想,而且根本无法扩展。
WITH growth_new(slno ,mon ,sales_amount)
AS (SELECT 1, 'Jan', 5000 UNION
SELECT 2, 'Feb', 12000 UNION
SELECT 3, 'Mar', 32000 UNION
SELECT 4, 'Apr', 20000
)
SELECT cur.*, prev.mon as prev_month,
ISNULL(prev.sales_amount,0) AS prev_month_sales_amount,
[%MoM Change] = ((cur.sales_amount -
ISNULL(prev.sales_amount,0))/CAST(prev.sales_amount as float))*100
FROM growth_new cur
LEFT JOIN growth_new prev ON prev.slno = cur.slno - 1
slno mon sales_amount prev_month prev_month_sales_amount %MoM Change
1 Jan 5000 NULL 0 NULL
2 Feb 12000 Jan 5000 140
3 Mar 32000 Feb 12000 166.666666666667
4 Apr 20000 Mar 32000 -37.5
推荐阅读
- swift - Appkit:如何在本地文件夹上执行 NSMetadataQuery
- python - 绘制数组中的问题,即信号的 dft
- java - IDE 集成与运行独立 Tomcat
- excel - 如何在同一个工作表iv VBA Excel中超链接到新创建的工作表?
- p-value - 有没有办法查看真正的 p 值,因为 R 显示为 0?
- javascript - Vue 通过多个按钮状态切换
- python - AJAXing 时 QueryDict 在 django 而不是 JSON 中通过
- javascript - Babel 不适用于 IE11 的内置类 Map 扩展
- arrays - 将 Array 结构规范化为 mongoDB 中的多个文档
- c++ - 带有可选参数的 Poco 选项