MYSQL數(shù)據(jù)分析案例總結(jié)

一、創(chuàng)建表,并將數(shù)據(jù)導(dǎo)入userinfo和orderinfo表中

1.導(dǎo)入數(shù)據(jù):

第一步:建表

create table orderinfo(

orderid? ? int? primary key not null ,

userid? ? ? int,

isPaid? ? ? varchar(10),

price? ? ? ? float,

paidTime? varchar(30));

create table userinfo(

? ? userid? int primary key,

? ? sex? ? varchar(10),

? ? birth? ? date);

第二步:導(dǎo)數(shù)

load data local? infile 'C:/Users/lan/Desktop/123/order_info_utf.csv' into table orderinfo? fields terminated by ',';

load data local? infile 'C:/Users/lan/Desktop/123/user_info_utf.csv' into table userinfo? fields terminated by ',';

二值骇、mysql數(shù)據(jù)分析案例

1.首先了解兩個(gè)表的信息:

userinfo 用戶信息表:

userid:主鍵罢屈,用戶id

sex:用戶性別

birth:用戶生日


orderinfo 訂單信息表

orderid:訂單id

userid:用戶id

ispaid:支付狀態(tài)

price:支付價(jià)格


paidtime:支付時(shí)間


2.統(tǒng)計(jì)不同月份的下單人數(shù)

分析要點(diǎn):不同月份奖磁,使用month函數(shù)獲取訂單日期中的月份亏吝,下單狀態(tài)為已支付狀態(tài)

select month(paidtime),count(distinct userid) from orderinfo where ispaid='已支付' group by month(paidtime);


3.統(tǒng)計(jì)用戶三月份和四月份回購率和復(fù)購率

復(fù)購率:本月消費(fèi)的人數(shù)有多少是重復(fù)購買的,即購買次數(shù)大于1次;

分步計(jì)算:

首先求出三月份存在消費(fèi)的用戶球拦,以及每個(gè)用戶的消費(fèi)次數(shù);(由于運(yùn)行數(shù)據(jù)較大限制顯示行數(shù))

select userid,count(userid) as ct from orderinfo where ispaid='已支付' and month(paidtime)=3 group by userid limit 10;

如上表所示userid列為本月存在消費(fèi)的用戶帐我,ct列為消費(fèi)次數(shù)坎炼,統(tǒng)計(jì)ct列,count(ct)為計(jì)算本月存在消費(fèi)總?cè)藬?shù)拦键,通過if函數(shù)計(jì)算出消費(fèi)次數(shù)大于1的消費(fèi)者數(shù)量谣光,即復(fù)購的消費(fèi)者數(shù),相除即為復(fù)購率芬为;

select count(ct),count(if(ct>1,1,null)) as nt from

(select userid,count(userid) as ct from orderinfo where ispaid='已支付' and month(paidtime)=3 group by userid) t;

也可使用case when方法萄金,結(jié)果相同;

select count(ct),count(case when ct>1 then 1 else null end) as nt from

(select userid,count(userid) as ct from orderinfo where ispaid='已支付' and month(paidtime)=3 group by userid) t;

回購率:三月份購買的人數(shù)媚朦,四月份依舊購買氧敢;

首先用userid和月份進(jìn)行分組,計(jì)算用戶在當(dāng)月是否消費(fèi)過询张;(由于運(yùn)行數(shù)據(jù)較大限制顯示行數(shù))

select userid,date_format(paidtime,'%Y-%m-01') from orderinfo where ispaid='已支付' group by userid,date_format(paidtime,'%Y-%m-01') limit 10;

通過left join對(duì)表進(jìn)行關(guān)聯(lián)孙乖,關(guān)聯(lián)出三月、四月都存在消費(fèi)情況(由于運(yùn)行數(shù)據(jù)較大限制顯示行數(shù))

如圖,userid5 在3月和4月都存在消費(fèi)的圆,

select * from

(select userid,date_format(paidtime,'%Y-%m-01') as m from orderinfo where ispaid='已支付' group by userid,date_format(paidtime,'%Y-%m-01')) t1

left join

(select userid,date_format(paidtime,'%Y-%m-01') as m from orderinfo where ispaid='已支付' group by userid,date_format(paidtime,'%Y-%m-01'))t2

on t1.userid=t2.userid and t1.m=date_sub(t2.m,interval 1 month)? limit 20;

對(duì)上表進(jìn)行計(jì)數(shù)鼓拧,計(jì)算出當(dāng)月存在消費(fèi)的情況和下月依然存在消費(fèi)的情況,相除即為復(fù)購率越妈;

select t1.m,count(t1.m),count(t2.m) from

(select userid,date_format(paidtime,'%Y-%m-01') as m from orderinfo where ispaid='已支付' group by userid,date_format(paidtime,'%Y-%m-01')) t1

left join

(select userid,date_format(paidtime,'%Y-%m-01') as m from orderinfo where ispaid='已支付' group by userid,date_format(paidtime,'%Y-%m-01'))t2

on t1.userid=t2.userid and t1.m=date_sub(t2.m,interval 1 month) group by t1.m;

3.統(tǒng)計(jì)男女用戶的消費(fèi)頻次是否有差異季俩;

首先性別字段存在空值,先把空值過濾掉梅掠;

select * from userinfo where sex <>' ' limit 10;

將訂單表與用戶表相關(guān)聯(lián)酌住;

select * from orderinfo o

inner join

(select * from userinfo where sex<>' ') t

on o.userid=t.userid limit 20;

統(tǒng)計(jì)男、女的消費(fèi)總次數(shù)阎抒;

select o.userid,sex,count(1) from orderinfo o

inner join

(select * from userinfo where sex<>' ') t

on o.userid=t.userid

group by o.userid,sex limit 20;

統(tǒng)計(jì)男女消費(fèi)頻次差異酪我;

select sex,avg(ct) from (

select o.userid,sex,count(1) as ct from orderinfo o

inner join

(select * from userinfo where sex<>' ') t

on o.userid=t.userid

group by o.userid,sex) t2

group by sex;

4.統(tǒng)計(jì)多次消費(fèi)的用戶,第一次消費(fèi)和最后一次消費(fèi)的時(shí)間間隔

首先求出多次消費(fèi)的用戶且叁;

select * from orderinfo where ispaid='已支付' group by userid having count(1)>1;

求出最大時(shí)間都哭,和最小時(shí)間,時(shí)間間隔(求分組后的組內(nèi)的最大值和最小值,按照userid 分組已經(jīng)過濾掉了消費(fèi)次數(shù)小于1的用戶逞带,所以至少存在兩次消費(fèi)情況欺矫,課選出最大時(shí)間,最小時(shí)間)

select userid,max(paidtime),min(paidtime) ,datediff(max(paidtime),min(paidtime)) as mt from orderinfo where ispaid='已支付' group by userid having count(1)>1 limit 20;

5.統(tǒng)計(jì)不同年齡段展氓,消費(fèi)是否有差異:

首先統(tǒng)計(jì)用戶的年齡段穆趴;注意年齡計(jì)算函數(shù),過濾無效數(shù)據(jù)遇汞;

select userid,ceil((year(now())-year(birth))/10) as ct from userinfo where birth>'1901-00-00' limit 10;

訂單表和用戶表關(guān)聯(lián)未妹,查看不同年齡段消費(fèi)情況;

select * from orderinfo o

inner join

(select userid,ceil((year(now())-year(birth))/10) as ct from userinfo where birth>'1901-00-00') t

on o.userid=t.userid limit 10;


統(tǒng)計(jì)不同年齡段消費(fèi)頻次空入;

select o.userid,t.ct,count(t.ct) as mt from orderinfo o

inner join

(select userid,ceil((year(now())-year(birth))/10) as ct from userinfo where birth>'1901-00-00') t

on o.userid=t.userid group by o.userid,t.ct limit 10;

6.統(tǒng)計(jì)消費(fèi)二八法則络它,消費(fèi)20%的用戶,貢獻(xiàn)了多少額度歪赢;

首先計(jì)算用戶的消費(fèi)總金額酪耕;

select userid,sum(price) from orderinfo where ispaid='已支付' group by userid limit 10;

select userid,sum(price) as total from orderinfo where ispaid='已支付' group by userid limit 10;

計(jì)算出前20%的用戶;

select count(userid) *0.2,sum(total) from (

select userid,sum(price) as total from orderinfo where ispaid='已支付' group by userid order by total) t;

由于這里計(jì)算出的結(jié)果是前17000行轨淌,所以將內(nèi)層查詢條件限制為17000;

select count(userid) ,sum(total) from (

select userid,sum(price) as total from orderinfo where ispaid='已支付' group by userid order by total desc limit 17000) t;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末看尼,一起剝皮案震驚了整個(gè)濱河市递鹉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌藏斩,老刑警劉巖躏结,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異狰域,居然都是意外死亡媳拴,警方通過查閱死者的電腦和手機(jī)黄橘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屈溉,“玉大人塞关,你說我怎么就攤上這事∽咏恚” “怎么了帆赢?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)线梗。 經(jīng)常有香客問我椰于,道長(zhǎng),這世上最難降的妖魔是什么仪搔? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任瘾婿,我火速辦了婚禮,結(jié)果婚禮上烤咧,老公的妹妹穿的比我還像新娘偏陪。我一直安慰自己,他們只是感情好髓削,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布竹挡。 她就那樣靜靜地躺著,像睡著了一般立膛。 火紅的嫁衣襯著肌膚如雪揪罕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天宝泵,我揣著相機(jī)與錄音好啰,去河邊找鬼。 笑死儿奶,一個(gè)胖子當(dāng)著我的面吹牛框往,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播闯捎,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼椰弊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了瓤鼻?” 一聲冷哼從身側(cè)響起秉版,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茬祷,沒想到半個(gè)月后清焕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年秸妥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滚停。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粥惧,死狀恐怖键畴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情影晓,我是刑警寧澤镰吵,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站挂签,受9級(jí)特大地震影響疤祭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜饵婆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一勺馆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧侨核,春花似錦草穆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至些己,卻和暖如春豌鸡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背段标。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工涯冠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人逼庞。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓蛇更,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親赛糟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子派任,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容