工具:Navicat
數(shù)據(jù):order_info_utf, user_info_utf
問題:
1缝裤、統(tǒng)計不同月份的下單人數(shù)
2屏轰、統(tǒng)計用戶3月份的復購率和回購率
3、男女用戶的消費頻次是否有差異憋飞?
4霎苗、多次消費的用戶,第一次和最后一次消費間隔是多少榛做?
5唁盏、不同年齡段,用戶的消費頻次是否有差異检眯?
6厘擂、統(tǒng)計消費的二八法則,消費的20%用戶貢獻了多少額度锰瘸?
1.統(tǒng)計不同月份的下單人數(shù):
要求下單人數(shù)刽严,先過濾掉未支付的人,然后用DATE_FORMAT()函數(shù)避凝,按月分組舞萄。查詢?nèi)藬?shù)用count()計數(shù),注意要加distinct去除重復值管削,如果不加distinct倒脓,計數(shù)的人數(shù)會偏多因為有重復的userID
2.統(tǒng)計用戶3月份的復購率和回購率:
復購率是一個月之內(nèi),多次購買的用戶占比
先過濾出購買的用戶和3月份含思,按用戶ID分組后對用戶ID計數(shù)崎弃,即可以知道每個用戶在該月購買了幾次。從中選出購買次數(shù)大于1 的用戶(復購)含潘,計數(shù)饲做。計數(shù)得到的兩個數(shù)字相除就是復購率
count()里面嵌套了一個if條件語句,表示如果用戶購買次數(shù)大于1則返回1调鬓,否則返回空值艇炎,對所有的1 計數(shù),null值不計數(shù)腾窝。
回購率是當月消費過的缀踪,在次月也消費了
題目若改為求所有月份的回購率,對用戶和月份分組就可以知道每個用戶出現(xiàn)在哪個月
把這個結果作為表虹脯,左聯(lián)結驴娃,聯(lián)結的條件是兩個表的用戶ID一樣而且左表比右表的月份小一月。左聯(lián)結就是在左邊表出現(xiàn)(消費)的用戶不一定在右邊表出現(xiàn)循集,若兩個表之間能匹配上的用戶就是回購的唇敞,不能匹配上的自然顯示空值。
結果如下,3月有54799人消費疆柔,其中有13119人在4月也消費了咒精。
3.男女用戶的消費頻次是否有差異?
首先過濾掉用戶表中的無性別的值旷档,然后和訂單表內(nèi)部聯(lián)結模叙。按用戶分組,計數(shù)得到每個用戶消費多少次鞋屈,然后按性別分組
結果如下范咨,比如用戶13341是女,消費了1次:
再對上面的表按性別分組厂庇,求出男女各自的平均消費次數(shù):
4.多次消費的用戶渠啊,第一次和最后一次消費間隔是多少?
按用戶分組权旷,提取多次消費的用戶:
求日期間隔用datediff()替蛉,相減的話得到的是秒:
5.不同年齡段,用戶的消費頻次是否有差異炼杖?
我們把年齡10歲分為一段灭返,YEAR(NOW())-YEAR(birth)計算出每個用戶多少歲盗迟,ceil:向上取整函數(shù)坤邪,:2號用戶處在第五個年齡段
6.統(tǒng)計消費的二八法則,消費的20%用戶貢獻了多少額度罚缕?
首先看一下所有支付了的用戶的消費額:
再從這個表中查詢所有用戶消費的總金額:
得到結果如下艇纺,共有85649條消費記錄
20%用戶就是17129,我們選取前17000條可以了
查詢20%的用戶消費的總金額:
兩者的總額相除就知道消費的20%用戶貢獻了多少額度