对于电商或者大多数互联网业务来说,计算每日用户数据和,以及当日累计的数据和是非常常见的计算场景之一。对于新入门或者SQL不是很熟悉的分析师来说,确要花费巨大的精力来计算,今日就提供一个万能的计算模本,照着抄就是了。
直接上模板内容:
select
t1.day,
sum(t1.uv) as day_sum,--当日数据和
sum(t2.uv) as add_sum --累计数量和
from
(
select
date_format(`下单日期`, 'yyyy-MM-dd') as day,
--日期不规范的对日期进行规范,也可做成月/年
count(distinct `用户名`) as uv
FROM
`表名`
group by day
) t1,
(
select
date_format(`下单日期`, 'yyyy-MM-dd') as day,
--日期不规范的对日期进行规范,也可做成月/年
count(distinct `用户名`) as uv
FROM
`表名`
group by day
) t2
where
t1.day >= t2.day
group by
t1.day
按照这个模板计算,分分钟计算出当日数量和与累计数量和
废话不多说,拿走不谢!!
具体原理则是笛卡尔积的运用,SQL中用的是自连接实现,具体的数据原理,等有空了再分享。
查数姑要继续搬砖了。。。。