何羅魚國際貨運業務治理系統的大數據圖表里會按月展現收入、支出以及利潤圖表供治理層決策參考,并有實時計算同比、環比增長或下降比例,同比的算法比較好理解,但環比算法還真要琢磨一下。
同比 Year on Year
同比的計算公式:
同比率=(本期數-同期數)÷|同期數|×100%
同比是以年為維度去做比較,比如今年的第 N 個月(本期數)與去年的第 N 個月(同期數)的比較。
例子:
比如說某貨代公司去年3月的利潤為100萬,本年3月的利潤為150萬,同比增長是怎么算?
同比增長率=(150-100)÷|100|=50%
注重這個絕對值喲,這個很要害的,代碼里沒有加的話,當利潤為負數時,結果就很有意思了。
環比 Month on Month
環比的計算公式:
環比率=(本期數-上期數)÷|上期數|×100%
看環比的英文寫法,大概就可以理解環比是以月為維度做比較的。
但我們在開發的時分卻碰到了問題(也許我們想多了,但代碼總要寫清晰):如何定義上期數?我們討論了兩種不同的方案:
先舉例子:
比如說某貨代公司本年的利潤如下:
月份
利潤

1月
100萬
2月
150萬
3月
80萬
4月
200萬
根據計算公式我們可以很方便地算出月度的環比:
2月環比(1月)增長了:(150-100)÷|100|=50%
同理3月環比(2月)下降了46.67%;4月環比(3月)增長了150.00%。
但在系統實際運用中,月份是可以多選的,當選中的月份為3月和4月的時分,合計利潤280萬,問題就出現了,上期數是多少?(280-?)÷|?|=?%
方案一:
上期數=100+150=250萬,就是3月+4月的環比(1月+2月)增長=(280-250)÷|250|=12%,這個方案理解起來相對簡樸,相鄰周期作比較,但總感覺這和 Month on Month 不太相符,另外還會有一個問題,當你挑選了本年1-12月的時分,得出的環比值就和同比值相同了,網上搜一下,其實許多網友也有這個迷惑:年度的同比與環比怎么算?
方案二:
上期數=150+80=230萬,就是3月+4月的環比(2月+3月)增長=(280-230)÷|230|=21.74%,這個理解起來就有點繞了,但似乎是可以解釋 Month on Month 這種叫法,就是以月度為基數去計算增長。
declare@start_datedate--開始工夫declare@end_datedate--結束工夫dateadd(month,-1,@Start_date)–環比開始工夫dateadd(month,-1,@End_date)–環比結束工夫
評論前必須登錄!
立即登錄 注冊