同比
概念:同比就是与历史同时期比较。
例如,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