背景
在互联网电商公司内部boss或运行同学经常会去查看商品同比与环比的销售情况,如何快速高效给出这些数据是每一位数据研发工作者不断探索和思考的问题,今天我基于clickhouse给出两种简单的实现,希望能对大家日常的工作起到帮组
同比
同比,即同期比较,用当前数据去和历史同时期数据进行比较;如查看历史不同时期H5制作量的数据变化情况;一个Sql搞定,上线之后也不需要随时间推移再进行手动调整年份:
select toMonth(create_time) M ,
countIf(toYear(create_time)=toYear(now())) p0_cn, #当年制作量
countIf(toYear(addYears(create_time,1))=toYear(now())) p1_cn, #去年制作量
countIf(toYear(addYears(create_time,2))=toYear(now())) p2_cn #前年制作量
from scene_model group by M order by M
环比
环比是通过当前数据与上一期数据进行对比,来看数据上升或下降的变化情况;继续以H5制作量进行环比统计
#统计今年每月H5制作量环比增长情况
select M ,cn as current_m_cn, neighbor( cn, -1 ) pre_m_cn
from(
select toMonth(create_time) M ,
count( 1 ) cn
from scene_model where toYear(create_time)=toYear(now()) group by M order by M
)