評價一個商業(yè)產(chǎn)品好不好制轰,我們可以使用NPS灯谣、退款率、產(chǎn)品的使用效果等指標(biāo)曲掰。
NPS是推薦值疾捍,是用戶向其他人推薦產(chǎn)品的可能性,凈推薦值(NPS)=(推薦者數(shù)/總樣本數(shù))×100%-(貶損者數(shù)/總樣本數(shù))×100%栏妖。
退款率乱豆,是退款的用戶占比。
產(chǎn)品使用效果吊趾,是產(chǎn)品承諾給用戶的效果宛裕,在用戶使用之后瑟啃,是不是真的能達(dá)到,比如下面某APP商業(yè)產(chǎn)品揩尸,說開通會員更快找到另一半蛹屿,用戶是不是能夠更快的找到另外一半,就是效果的體現(xiàn)岩榆。
還有一個指標(biāo)错负,能夠很好的體現(xiàn)產(chǎn)品效果---復(fù)購。復(fù)購是指用戶多次購買勇边。如果用戶不滿意犹撒,那肯定不會多次購買(剛需品除外)。復(fù)購的維度比較多粒褒,比如金額识颊、品類等,這里主要討論周期奕坟。
如果我們能夠計算出大部分用戶的復(fù)購周期谊囚,那么,我們就能精細(xì)化運(yùn)營执赡。當(dāng)?shù)竭_(dá)一定的周期時镰踏,就可以通過發(fā)優(yōu)惠券或是其他的運(yùn)營方式觸達(dá)用戶。下面給大家分享一下怎么用sql計算用戶的復(fù)購周期沙合。
下表是不同用戶在不同時間的下單情況奠伪。表名:order_user,字段名稱:a.用戶名稱---customer_name首懈,b.訂單時間---order_date
思路:
把訂單時間往后位移一行绊率。
用訂單時間減去位移后的時間,就得到了周期究履。
以周期進(jìn)行聚合滤否,得到了不同周期的分布。
第一步:位移
使用lag函數(shù)進(jìn)行位移最仑。lag(order_date,1)中兩個參數(shù)藐俺,第一個參數(shù)是需要位移的字段,第二個字段是位移幾行,在這里讓訂單時間往后位移一行得到lag1字段泥彤。
以customer_name進(jìn)行開窗欲芹,然后以order_date進(jìn)行排序,可以看到用戶的每個訂單時間都往后移動了一行吟吝。
select
customer_name,
order_date,
lag(order_date,1) over(partition by customer_name order by order_date asc) as lag1
from
order_user
第二步:計算周期
然后使用訂單時間減去位移后的時間菱父,得到了周期。
select
customer_name,
order_date,
lag1,
datediff(order_date,lag1) as diff
from
(
select
customer_name,
order_date,
lag(order_date,1) over(partition by customer_name order by order_date asc) as lag1
from
order_user
)a
第三步:確定周期分布
最后以周期進(jìn)行聚合,求次數(shù)浙宜,得到了不同周期的次數(shù)官辽。注意:
對周期進(jìn)行排序,這樣就能得到從小到大的順序粟瞬;
排除null野崇,位移以后第一訂單時間,對應(yīng)的位移值是null亩钟,需要排除挤茄。
select
diff as '周期',
count(*) as '次數(shù)'
from
(
select
customer_name,
order_date,
lag1,
datediff(order_date,lag1) as diff
from
(
select
customer_name,
order_date,
lag(order_date,1) over(partition by customer_name order by order_date asc) as lag1
from
order_user
)a
)b
where
diff is not null
group by
diff
order by
diff
完整版SQL
完整版的SQL中痕寓,我使用了with創(chuàng)建了一個臨時表洒宝,表名就是order_user凿傅,大家可以在網(wǎng)上搜索一下,如果有疑問可以私信我焰轻。
with order_user as (
select
customer_name,
date(order_date) as order_date
from
chaoshi.order
where
Customer_Name in (
'曾惠','許安','韋松'
)
group by
customer_name,
order_date
order by
customer_name,
date(order_date)
)
select
diff as '周期',
count(*) as '次數(shù)'
from
(
select
customer_name,
order_date,
lag1,
datediff(order_date,lag1) as diff
from
(
select
customer_name,
order_date,
lag(order_date,1) over(partition by customer_name order by order_date asc) as lag1
from
order_user
)a
)b
where
diff is not null
group by
diff
order by
diff
;
得到了周期分布臭觉,就可以交付給運(yùn)營同學(xué),針對不同的用戶進(jìn)行精細(xì)化運(yùn)營辱志。
- gongzhongh:數(shù)有道
- gongzhongh:數(shù)有道
- gongzhongh:數(shù)有道