sql语句中全关联的再认识

问题描述:根据当年和去年的收入,对用户的状态(新客户,老客户,流失客户)进行打标;

逻辑: 收入去年>0 and 收入当年=0 -------------->流失

收入去年>0 and 收入当年>0 -------------->老客

收入去年=0 and 收入当年>0 -------------->新客

去年数据的展示:

当年数据的展示:

下一年的数据展示:

根据逻辑判断2018年:B、C是老客;D是新客;A、E是流失的

1.如果根据当年的用户left join来打标的话,流失的用户无法打标。原因:流失用户不存在于2018年的数据中,只存在于2017年的数据中。

2.将今年的用户和去年的用户full join后,就可以得到所有的新老客户和流失客户。全关联后,数据量会比左关联的数据量要大一些

3.用户左关联的另外一种思路

3.1表结构如下

年份 客户 当年标识(新客,老客) 下一年标识(流失,老客)
经验分享 程序员 微信小程序 职场和发展