sql语句中全关联的再认识

根据历年收入,用户状态分为新客户、老客户和流失客户。流失客户为去年收入大于0,今年收入为0;老客户是去年和今年收入都大于0;新客户是去年收入为0,今年大于0。若使用左连接打标,流失客户无法标记,需通过全连接获取所有用户状态。另一种方案是构建包含当年和下一年标识的用户表结构,便于状态判断。
摘要由CSDN通过智能技术生成

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

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

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

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

去年数据的展示:

当年数据的展示:

 

下一年的数据展示:

 

 

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

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

yH5BAAAAAAALAAAAAAOAA4AAAIMhI+py+0Po5y02qsKADs=wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

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

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

3.1表结构如下

年份客户当年标识(新客,老客)下一年标识(流失,老客)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值