同比
概念:同比就是與歷史同時期比較。
例如,2019年7月份與2018年7月份相比,就是與不同年份的同一時期作比較,叫同比。
select
本月時間,
case when 2019-07數據 is null or 2019-07數據 = 0 then 0 else 2019-07數據 end 2019-07數據,
case when 2018-07數據 is null or 2018-07數據 = 0 then 0 else 2018-07數據 end 2018-07數據,
case when 2018-07數據 is null or 2018-07數據 = 0 then 0
else ( convert ( ( ( 2019-07數據 - 2018-07數據 ) / 2018-07數據 ) * 100, decimal ( 10, 2 ) ) )
end 同比
from
( 2019-07數據表 ) 2019-07數據
left join
( 2018-07數據表 ) 2018-07數據
on 2019-07數據.產品名 = 2018-07數據.產品名
環比
概念:與上一統計段比較。
(1)就是先取本月的數據
(2)再用date_add函數向後延遲一個月(用interval)同樣的方法取值
(3)二者進行關聯
(4)從錯位關聯的兩張大臨時表中取數並做計算
例如,2019年7月份與2019年6月份相比較,叫環比。
select
本月時間,
case when 2019-07數據 is null or 2019-07數據 = 0 then 0 else 2019-07數據 end 2019-07數據,
case when 2019-06數據 is null or 2019-06數據 = 0 then 0 else 2019-06數據 end 2019-06數據,
case when 2019-06數據 is null or 2019-06數據 = 0 then 0
else ( convert ( ( ( 2019-07數據 - 2019-06數據 ) / 2019-06數據 ) * 100, decimal ( 10, 2 ) ) )
end 環比
from
( 2019-07數據表 ) 2019-07數據
left join
( 2019-06數據表 ) 2019-06數據
on 2019-07數據.產品名 = 2019-06數據.產品名
佔比
(1)求出分組、彙總
(2)笛卡爾積連接
(3)相除
例如,品類銷量佔比
select
t1.name as 品類名稱,
t1.num as 銷售量,
concat( format( t1.num / t2.total * 100, 2 ),'%') as 佔比
from
(select name,sum(銷售量) num from 銷售表 group by name ) t1
inner join
( select sum(銷售量) total from 銷售表 ) t2
on 1=1
參考:https://blog.csdn.net/zzqhello2018/article/details/101533565