電商運營是如何用 SQL 實現(xiàn)數(shù)據(jù)分析的?
時間:2023-03-16 00:44:01 | 來源:電子商務
時間:2023-03-16 00:44:01 來源:電子商務
此時你是一個電商公司的數(shù)據(jù)分析師,或者是運營,此時在你面前有個疑問:核心粉絲,一般粉絲,路人,不同核心層的用戶他們的訪問次數(shù)分別是多少?
你得到了你們公司的拼多多店鋪的基本數(shù)據(jù)
此時的你,會如何?數(shù)據(jù)分析?具SQL寫出分析結果。
邏輯樹分析?法
遇到復雜問題,怎么辦?可以?11?數(shù)據(jù)分析?法?的“邏輯樹分析?法”,把復雜問題拆解為簡答
問題
我們可以?把這個復雜的問題拆解為3個?問題:
1)找出訪問次數(shù)前20%的??
2)剔除訪問次數(shù)前20%的??
3)每類??的平均訪問次數(shù)
只要分別解決了每個?問題,那么就解決了該業(yè)務問題。1.訪問次數(shù)前20%的??
先按“訪問次數(shù)”排名,然后就可以找到”前20%”的數(shù)據(jù)。排名問題可以?SQL的?級功能窗?函
數(shù)來解決。
?先對所有??的訪問量按從低到?的順序?窗?函數(shù)排名:
select *, row_number() over(order by 訪問量 desc) as 排名
from ??訪問次數(shù)表;
排名后,如何找出前20%的數(shù)據(jù)呢?
排名<=最?的排名值 * 20%,就是前20%的數(shù)據(jù)。
把前?的排名結果表當作臨時表a,加上篩選條件(where)對應的sql語句如下:
select * from a where 排名<= 最?的排名 * 0.2;
最?的排名值如何得到呢?可以?下?的sql語句:
select max(排名) from a;
把前?的sql語句組合到?起就得到了篩選出排名前20%的數(shù)據(jù)了:
select * from a where 排名<= (select max(排名) from a) * 0.2;
2.剔除訪問次數(shù)前20%的??
題?要求是“剔除訪問次數(shù)前20%的??”,也就是把上?sql語句?的where條件中的 <= 變成 >就獲
取到相反的數(shù)據(jù)了。
select * from a where 排名 > (select max(排名) from a) * 0.2;
把前?得到的臨時表a的sql語句帶?后就是:
select * from
(select *, row_number() over(order by 訪問量 desc) as 排名 from ??訪問次數(shù)表) as a
where 排名 > (select max(排名) from (select *, row_number() over(order by 訪問量 desc) as 排名
from ??訪問次數(shù)表) as a) * 0.2;
3.每類??的平均訪問次數(shù)
當“每個”出現(xiàn)的時候,就要想這時候就是要分組匯總了。
按“??類型”分組(group by),然后匯總求平均訪問次數(shù)avg(訪問次數(shù))。
select ??類型,avg(訪問量) from b group by ??類型;
這?的表b就是前?第2步得到的臨時表,帶?sql?就是:
select ??類型,avg(訪問量)
from
(select * from
(select *, row_number() over(order by 訪問量 desc) as 排名 from ??訪問次數(shù)表) as a
where 排名 > (select max(排名) from (select row_number() over(order by 訪問量 desc) as 排名
from ??訪問次數(shù)表) as a) * 0.2) as b
group by ??類型;
【案例復盤】
1.?對復雜問題,要會使?邏輯樹分析?法將復雜問題拆解成簡單問題
2.排名問題,要想到使?SQL?級功能窗?函數(shù)來實現(xiàn)。
3. 當有“每個”出現(xiàn)的時候,要想到?分組匯總,下圖是常?的匯總函數(shù)
Version:0.9 StartHTML:0000000105 EndHTML:0000003245 StartFragment:0000000141 EndFragment:0000003205
3.通過這個案例,我們可以總結出萬能模板:
選出前百分之N的問題如何解決?下?是這類問題的萬能模板
1)先使?窗?函數(shù)對數(shù)據(jù)排名得到臨時表a
select *, row_number() over(order by 排名的列 desc) as 排名 from 表名;
2)然后?表a篩選出前百分之N的數(shù)據(jù)
select * from a where 排名 <= (select max(排名) from a) * 百分之N;
3)如果是剔除前前百分之N的數(shù)據(jù),也就是選出后(1-百分之N)的數(shù)據(jù)。例如選出后80%的數(shù)據(jù),就把
上?的where?句?的 <= 修改成 >
select * from a where 排名 > (select max(排名) from a) * 百分之N;
最后,如果你想更
系統(tǒng)地學習數(shù)據(jù)分析,依然推薦本站官方開設的「數(shù)據(jù)分析實戰(zhàn)訓練營」,這個課為期3天,直播講解+學習社群的形式,對小白友好。
可以短時間掌握職場上常用的
工具操作、分析技巧方法、和數(shù)據(jù)思維都能講明白,連我這種老鳥都覺得很受用,而且只要 1 毛錢,感興趣的朋友可以試試哦,鏈接我放這啦。
關鍵詞:實現(xiàn),數(shù)據(jù),分析,運營