假設現在有下方這兩張表(sales和dim_date),我們需要通過它們計算銷售額同比增長率。
第一張表是 sales(銷售表),記錄日期和日期對應的銷售額;
第二張表是dim_date(日期維表),記錄日期對應的可比日期(這裡是去年同月同天)。
口徑如下:那麼我們該怎麼寫 sql 來計算這個同比增長率呢?當 日銷
售額同比
增長率=
當日銷售
額−去年
同月同天
銷售額去
年同月同
天銷售額
∗100
%當日銷售額同比增長率=\frac *100\%
當日銷售額同
比增長率
=去年同
月同天銷
售額當日
銷售額−
去年同月
同天銷售
額∗100%
計算邏輯:2.1 mysql實戰先用銷售表關聯日期維表,獲得每天的可比日期(如2020-01-03的可比日期為2019-01-03),再用上述結果表關聯銷售表,得到可別日期對應的銷售額;
根據統計口徑可直接求得。
2.1.1 資料匯入
-- ddl: sales
drop
table
ifexists test.sales;
create
table test.sales (
report_date date
comment
'日期'
, sales_amt double
comment
'銷售額'
)engine
=innodb
default
charset
=utf8
;-- insert data
insert
into test.sales(
report_date
, sales_amt
)values
('2020-01-03'
,'1000'),
('2020-01-02'
,'800'),
('2019-01-03'
,'900'),
('2019-01-02'
,'1100');
-- ddl: dim_date
create
table test.dim_date (
report_date date
comment
'日期'
, date_yoy date
comment
'去年同月同天'
)engine
=innodb
default
charset
=utf8
;-- insert data
insert
into test.dim_date(
report_date
, date_yoy
)values
('2020-01-03'
,'2019-01-03'),
('2020-01-02'
,'2019-01-02'
);
2.1.1 計算邏輯實現select a.report_date
,100
*(a.sales_amt - c.sales_amt)
/ c.sales_amt '可比增長率'
from test.sales a
left
join test.dim_date b on a.report_date = b.report_date
left
join test.sales c on b.date_yoy = c.report_date
Oracle 環比增長率
首先,了解什麼是 環比增長率?環比增長率 本期數 上期數 上期數 100 如 2014年2月的工資為 5000,2014年1月的工資為4000,則2月份的環比增長率為 5000 4000 4000 100 25 那麼,oracle中的sql語句怎麼寫呢?舉個例子 1.建表 create table ...
黨報刊文析經濟走勢 今年GDP增長率將在10 左右
物價 與我國經濟結構性矛盾的關係 這一輪物價 的深層原因還在於,我國經濟在持續5年10 以上的高速增長中積累了一些結構性矛盾,其突出表現是兩個失衡,即國內儲蓄 投資與消費失衡以及內需與外需失衡,經濟增長在需求上過多地依賴投資和出口,在產業上過多地依賴工業尤其是重化工業。2003年至2007年,全社會...
蘑菇街雙十一「直播狂歡」直播GMV同比增長155
11 月 13 日,蘑菇街對外公布了今年雙十一 直播狂歡節 的戰績 2019 年 11 月 1 日 12 日期間,蘑菇街全品類直播gmv同比去年增長155 包括美妝 等核心類目直播gmv均呈三位程式設計客棧數增長態勢,其中美妝 家居等漲幅超200 醫美健康漲幅超1000 今年,蘑菇街重點強調了直播在...