项目需求:
根据会员在三个月里指标的平均值(有20个指标,在此以一个指标为例),按照会员所在的县级市(city_id)和行业(category_id)分别进行排名,并依据排名等级和各个指标的权重分值计算分数。
分数计算规则:
过去3个月日平均值数据量最高的或者数值最高的排名为1
0≤该客户在该县级市该行业的排名/该县级市该行业总客户数<20%:满分20%≤该客户在该县级市该行业的排名/该县级市该行业总客户数<40%:满分×0.8
40%≤该客户在该县级市该行业的排名/该县级市该行业总客户数<60%:满分×0.6
60%≤该客户在该县级市该行业的排名/该县级市该行业总客户数<80%:满分×0.4
80%≤该客户在该县级市该行业的排名/该县级市该行业总客户数<100%:满分×0.2数据为0,则分数为0
平均每条offer的点击反馈转化率权重分值为4.5分
优化之前的算法
直接根据指标的值,取它的平均值,sql如下:
SELECTl_date
,member_id
,category_id
,city_id
,decode(nvl(fb_per_pv,0),0,0,
round(decode(trunc(rank() over(PARTITIONBYcity_id,
category_idORDERBYfb_per_pvDESC) /
COUNT(*)
over(PARTITIONB