SQL-Partition by

统计每个月,每个地区,用户缴费的月总计,年累计。

既然有月总计,年累计,应该就是先统计出月总计的数据,再用partition by 做年累计。

但是忘记了一个前提,切片的维度:月,地区,不一定每个月都存在(如果放大到地区,应该是每个月都存在的)。如果是这样,年累计就会出现问题,比如一个用户,这个月没有交费,但是前几个月是有交费的,那这个用户在这个月是有年累计数据。但是年累计数据是在月统计数据基础上,如果没有月数据,也不存在年累计数据。

对于这样的情况,就不能红切片来解决。

可以建一个月份表,跟实际的缴费数据left join 关联。月份表,与实际缴费数据关联,一个月份,对应这个月份及之前所有的月份的缴费数据。用SUM来统计结果。

 

posted on 2019-11-03 09:57  rainbo007  阅读(183)  评论(0编辑  收藏  举报

导航