主要思路 :
分別查詢出上月的資料為一張表, 本月的資料為一張表
使用 left join 連線兩張表, 並使用 where 語句釃浚符合條件的資料行
使用 case when 語句計算這張聯合表相應列的比值, 即為同比環比資料
實際語句示例:
# 計算同比
select s1.id,currdate,currsum currsumfee,prevdate,prevsum prevsumfee,
case
when prevsum>
0then
(currsum-prevsum)
/prevsum
else
"同期沒有資料"
end 費用同比
from
(select id ,statistic_date currdate,
sum(totalfee) currsum
from billing_statistics where date_format(statistic_date,
'%y-%m')=
'2020-11'
group
by id ) s1
left
join
(select id ,statistic_date prevdate,
sum(totalfee) prevsum
from billing_statistics where date_format(statistic_date,
'%y-%m')=
'2019-11'
group
by id ) s2
on s1.id=s2.id group
by s1.id
說明:
其中 currsum 為本期資料, prevsum為上期資料
format((currsum-prevsum)/prevsum*100,2) 為保留小數點後兩位有效數字
concat(format((currsum-prevsum)/prevsum*100,2),』%』) 為拼接函式
如果使用 format或 concat函式, 該列資料型別自動被轉為 varchar 型別, 如果需要按照 double型別大小排序, 建議不使用以上兩個函式, 同時將 case when 語句中 的 else 「同期沒有資料」 改為 else 0
參考:sql語句下的同比,環比操作
mysql 計算環比(同比類似)
計算同比 環比 PowerBI中同比環比那點事
哈嘍,這裡是白茶。乙個powerbi的初學者,記得在剛開始學dax的時候,乙個同比環比的問題困擾了我很久,每次都是覺得自己剛剛理解一點東西了,但是發現後續的坑更多。話不多說,look!這是我自己做的示例檔案,準備測試工作。將資料匯入powerbi中。begin 下面就可以準備進行同比環比的測試了,白...
使用pandas計算環比 同比
同比 和 環比 都是為了顯示資料的變化速度,但是基數不同,同比側重長期資料趨勢變化,環比側重於短期內資料趨勢變化 同比是指在同一時期內的資料趨勢變化,用於本期與同期的對比,例如本期2018 02月銷售額與同期2017 02月銷售額做對比。本期 同期 同期 環比是指在短時間內的資料趨勢變化,用去本期與...
視窗函式計算同比環比
環比,表示連續2個單位週期 比如連續兩月 內的量的變化比,反映本期比上期增長了多少 計算公式 環比增長率 本期數 上期數 上期數 100 例如某 2018年2月份銷售額比2018年1月份銷售額增長了多少。同比,今年第n月與去年第n月比,用以說明本期發展水平與去年同期發展水平對比而達到的相對發展速度,...