mysql经典面试题——解决同比案例

这是我上周面试遇到的一个问题,被问到了两次,频率还是挺高的。所以我准备记录下来,供大家参考

问题:2020-11-11当日每个城市的订单数量与上周同一天的比值 字段:城市city,日期datetime,订单ID orderId

同比增长:同比增长率=(本期数-同期数)/|同期数|×100%

首先介绍一个函数:

DATE_SUB(date,INTERVAL expr type) / DATE_ADD(date,INTERVAL expr type)
date 参数是合法的日期表达式;expr 参数是您希望添加的时间间隔;type 参数可以是下列值:YEAR、MONTH、WEEK、DAY、HOUR等等


select city,count(case when datetime='20201111' then orderId else null end) / count(case when datetime=date_sub('20201111',interval 1 week) then orderId else null end)  as '比例' from job_interview group by city;

 

你可能感兴趣的:(sql)