日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql复购率_MySQL_复购回购率

發(fā)布時間:2024/1/8 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql复购率_MySQL_复购回购率 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

指標解釋

如何計算復(fù)購率/回購率

計算方法一:復(fù)購的人 復(fù)購率 = 單位時間內(nèi)購買次數(shù)大于1的人/所有購買的人 例如: 一段時間內(nèi),10個人中有3個人購買2次,這3個人中有一個人又購買了一次,累計復(fù)購人數(shù)為3人,則這段時間內(nèi)的復(fù)購率為30%。

計算方法二:復(fù)購次數(shù) 復(fù)購率 = 單位時間內(nèi)復(fù)購次數(shù)/所有購買的人 例如: 一段時間內(nèi),10個人中有3個人購買2次,這3個人中有一個人又購買了一次,累計復(fù)購次數(shù)為4次,則這段時間內(nèi)的復(fù)購率為40%。

復(fù)購和回購的區(qū)別

復(fù)購是一個單位時間內(nèi)的多次購買,回購是在下一個單位時間內(nèi)仍然購買。 例如: 6月總共100人購買產(chǎn)品,其中有10人在6月購買了2次,5人在6月購買了3次。 按照方法一計算,6月的復(fù)購率為15% 按照方法二計算,6月的復(fù)購率為20% 若6月購買過產(chǎn)品的100個人中有10個在7月又購買了,則7月的回購率為10%。

何時關(guān)注復(fù)購?

90天內(nèi)重復(fù)購買率達到1%~15%;說明你處于用戶獲取模式;把更多的精力和資源投入到新用戶獲取和轉(zhuǎn)化; 90天內(nèi)重復(fù)購買率達到15~30%;說明你處于混合模式;平衡用在新用戶轉(zhuǎn)化和老用戶留存、復(fù)購上的精力和資源; 90天內(nèi)重復(fù)購買率達到30%以上;說明你處于忠誠度模式;把更多的精力和資源投入到用戶復(fù)購上;上述觀點出自《精益數(shù)據(jù)分析》,跟本人無關(guān)。

SQL題

題目出自《七周成為數(shù)據(jù)分析師》。

建表導(dǎo)入數(shù)據(jù)

DROP TABLE IF EXISTS orderinfo;

CREATE TABLE orderinfo ( id int, userid int, ispaid varchar(3), price decimal(10, 2), paidtime datetime NULL );

DROP TABLE IF EXISTS userinfo;

CREATE TABLE userinfo ( userid int, sex varchar(3) NULL, birth date NULL );

# 設(shè)置允許從本地導(dǎo)入文件

SET GLOBAL local_infile=1;

load data local infile 'F:/order_info_utf.csv' into table test.orderinfo fields terminated by ',' optionally enclosed by "'" escaped by '' lines terminated by '\r\n';

load data local infile 'F:/user_info_utf.csv' into table test.userinfo fields terminated by ',' optionally enclosed by "'" escaped by '' lines terminated by '\r\n' (userid,sex,birth);

我這邊選擇使用load data語句將csv導(dǎo)入mysql,你也可以選擇使用可視化界面導(dǎo)入,例如SQLyog,Navicat等。語句導(dǎo)入的執(zhí)行效率較高。下圖為使用Navicat導(dǎo)入的效果。

下圖為使用load data命令導(dǎo)入的效果。

1. 統(tǒng)計不同月份已支付的訂單數(shù),下單人數(shù)

SELECT CONCAT(YEAR(paidtime), '/', MONTH(paidtime)) AS 下單年月

, COUNT(*) AS 支付訂單數(shù), COUNT(DISTINCT userid) AS 下單人數(shù)

FROM orderinfo

WHERE ispaid = '已支付'

GROUP BY 下單年月;

2. 統(tǒng)計不同月份的回購率和復(fù)購率(復(fù)購率按照下單人數(shù)來算)

SELECT 下單年月, COUNT(c) AS 下單人數(shù)

, COUNT(if(c > 1, 1, NULL)) AS 當月復(fù)購人數(shù)

, concat(round(COUNT(if(c > 1, 1, NULL)) / COUNT(c) * 100, 2), '%') AS '當月復(fù)購率'

FROM (

SELECT CONCAT(YEAR(paidtime), '/', MONTH(paidtime)) AS 下單年月

, COUNT(userid) AS c

FROM orderinfo

WHERE ispaid = '已支付'

GROUP BY 下單年月, userid

) a

GROUP BY 下單年月;

SELECT a.date, COUNT(a.userid) AS 當月購買人數(shù), COUNT(b.userid) AS 次月回購人數(shù)

, concat(round(COUNT(b.userid) / COUNT(a.userid) * 100, 2), '%') AS 次月回購率

FROM (

SELECT DATE_FORMAT(paidtime, '%Y-%m-%01') AS date, userid

FROM orderinfo

WHERE ispaid = '已支付'

GROUP BY date, userid

ORDER BY userid

) a

LEFT JOIN (

SELECT DATE_FORMAT(paidtime, '%Y-%m-%01') AS date, userid

FROM orderinfo

WHERE ispaid = '已支付'

GROUP BY date, userid

ORDER BY userid

) b

ON a.userid = b.userid

AND a.date = date_sub(b.date, INTERVAL 1 MONTH)

GROUP BY date

3. 統(tǒng)計多次消費的用戶,第一次和最后一次消費時間的間隔

SELECT userid

, DATEDIFF(MAX(paidtime), MIN(paidtime)) AS 間隔天數(shù)

FROM orderinfo

WHERE ispaid = '已支付'

GROUP BY userid

HAVING COUNT(userid) > 1;

4. 統(tǒng)計男女消費頻次是否有差異

SELECT sex, AVG(c) AS 消費頻次

FROM (

SELECT COUNT(*) AS c, sex

FROM orderinfo o

INNER JOIN userinfo u ON o.userid = u.userid

WHERE sex IS NOT NULL

AND ispaid = '已支付'

GROUP BY o.userid

) a

GROUP BY sex

5. 統(tǒng)計男女消費金額是否有差異

SELECT sex, AVG(s) AS 消費金額

FROM (

SELECT SUM(price) AS s, sex

FROM orderinfo o

INNER JOIN userinfo u ON o.userid = u.userid

WHERE sex IS NOT NULL

AND ispaid = '已支付'

GROUP BY o.userid

) a

GROUP BY sex

6. 統(tǒng)計不同年齡段的用戶消費金額是否有差異

SELECT CASE

WHEN age BETWEEN 0 AND 9 THEN '0-9歲'

WHEN age BETWEEN 10 AND 19 THEN '10-19歲'

WHEN age BETWEEN 20 AND 29 THEN '20-29歲'

WHEN age BETWEEN 30 AND 39 THEN '30-39歲'

WHEN age BETWEEN 40 AND 49 THEN '40-49歲'

WHEN age BETWEEN 50 AND 59 THEN '50-59歲'

WHEN age BETWEEN 60 AND 69 THEN '60-69歲'

WHEN age BETWEEN 70 AND 79 THEN '70-79歲'

WHEN age BETWEEN 80 AND 89 THEN '80-89歲'

ELSE NULL

END AS 年齡段, round(AVG(price), 2) AS 平均消費

FROM orderinfo o

INNER JOIN (

SELECT userid, year(now()) - year(birth) AS age

FROM userinfo

WHERE year(birth) > 1900

) a

ON (o.userid = a.userid

AND age IS NOT NULL

AND ispaid = '已支付')

GROUP BY 年齡段

HAVING 年齡段 IS NOT NULL

ORDER BY 年齡段

7. 統(tǒng)計消費的二八法則,消費的top20%用戶,貢獻了多少額度

SELECT @sum_price := SUM(price)

, @count_user := COUNT(DISTINCT userid)

FROM orderinfo

WHERE ispaid = '已支付';

SELECT SUM(s) AS '前20%累計消費'

, concat(round(SUM(s) * 100 / @sum_price, 2), '%') AS '占比'

FROM (

SELECT userid, SUM(price) AS s, row_number() OVER (ORDER BY SUM(price) DESC) AS r

FROM orderinfo

WHERE ispaid = '已支付'

GROUP BY userid

) a

WHERE a.r <= @count_user * 0.2

數(shù)據(jù)數(shù)據(jù)集及代碼下載鏈接:百度云?pan.baidu.com

提取碼:xarx

總結(jié)

以上是生活随笔為你收集整理的mysql复购率_MySQL_复购回购率的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。