A. MYsql查詢一周內的數據(最近7天的)怎麼寫
select * from wap_content where week(created_at) = week(now)
如果要嚴格要求是某一年的,那可以這樣
查詢一天:
select * from table where to_days(column_time) = to_days(now());
select * from table where date(column_time) = curdate();
查詢一周:
select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);
查詢一個月:
select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <=
date(column_time);
查詢一年:
select * from table where DATE_SUB(CURDATE(), INTERVAL 1 YEAR) <= date(column_time);
(1)sql近一周的次日留存率擴展閱讀
mysql查詢最近7天的數據:
1,(以當天為起點)
SELECT * FROM tb_equity e where DATE_SUB(CURDATE(), INTERVAL 6 DAY) <=
date(createdate)
2,(以資料庫最新的時間最為最近的一天)
SELECT * FROM tb_equity e where createdate > DATE_ADD((select createdate from tb_equity
ORDER BY createdate DESC limit 1) ,INTERVAL -7 day)
and (select createdate from tb_equity ORDER BY createdate DESC limit 1) >= createdate
3,sql查詢表中的重復數據
select * from 表名 where 欄位名 in (select 欄位名 from 表名 group by 欄位名 HAVING COUNT(*)
> 1) order by 表名
B. 如何用SQL分析電商用戶行為數據(案例)
本文以「淘寶用戶行為數據集」的分析全過程為例,展示數據分析的全過程
——使用工具:MySQL,Excel,Navicat,PowerBI
——分析類型:描述分析,診斷分析
——分析方法:漏斗分析,用戶路徑分析,RFM用戶價值分析,活躍/存留分析,帕累托分析,假設驗證分析。
(考慮到閱讀體驗文章中只放了SQL截圖,如需PDF版本,再公眾號後台回復「用戶行為分析」領取)
(目錄如下)
1.分析流程和方法
當沒有清晰的數據看板時我們需要先清洗雜亂的數據,基於分析模型做可視化,搭建描述性的數據看板。
然後基於描述性的數據挖掘問題,提出假設做優化,或者基於用戶特徵數據進行預測分析找規律,基於規律設計策略。簡單來說:
——描述性分析就是:「畫地圖」
——診斷性分析就是:「找問題」
——預測性分析就是 :「找規律」
在數據分析中有兩個典型的場景:
一種是有數據,沒有問題:需要先整體分析數據,然後再根據初步的描述分析,挖掘問題做診斷性分析,提出假設,設計策略解決問題。
另一種是已經發現了問題,或者已經有了假設,這種做數據分析更偏向於驗證假設。
2.淘寶用戶行為分析
本次是對「淘寶用戶行為數據集」進行分析,在分析之前我們並不知道有什麼問題,所以需要先進行描述性分析,分析數據挖掘問題。
我們首先來看下這個數據集的元數據:
根據以上數據欄位我們可以拿用戶行為為主軸從縱深方向提出一些問題,然後再從數據中找答案
縱向:
——這個數據集中用戶的日活躍和周活躍時間有什麼規律嗎?
——在當日活躍的用戶次日,三日,四日……還有多少活躍?
深向:
——用戶從瀏覽到購買的整體轉化率怎麼樣?
——用戶從瀏覽到購買的路徑是怎麼樣子的?
——平台主要會給用戶推送什麼商品?
——用戶喜歡什麼類目?喜歡什麼商品?
——怎麼判斷哪些是高價值用戶 ?
下面是叮當整理的常用分析方法:
我們可以給前面的問題匹配一下分析方法,便於後面的分析:
為了便於後面的數據分析,在分析之前我們需要先對做一下清洗
看元數據(欄位解釋,數據來源,數據類型,數據量……)初步發現問題為之後的處理做准備。
確定缺失值范圍,去除不需要欄位,填充缺失內容
根據元數據格式和後續分析需要的格式對數據進行處理
去除重復值,異常值
——去除重復值:並把用戶ID,商品ID,時間戳設置為主鍵
——異常值處理:查詢並刪除2017年11月25日至2017年12月3日之外的數據
查詢並刪除小於2017-11-25的
——驗證數據:
——分析思路:
——SQL提數:
——Excel可視化:
活躍曲線整體為上升狀態,同為周六日,12月2號,3號相比11月25日,26日活躍度更高。
用戶在周六周日相比其他時間更活躍(周六周日為休息日,用戶有更多時間)
一天內用戶活躍的最高峰期為21點(用戶在這個時間段空閑較多)
——分析思路:
——SQL提數:
列出每用戶每天及當天後面又活躍的日期,並創建「活躍時間間隔表」用於後面求次日存留,三日存留……
對「活躍時間間隔表視圖」引用進行分組統計,計算每日存留人數並創建視圖
對存留人數表進行計算,統計活躍用戶留存率
——Excel可視化:
——分析思路:
——SQL提數:
-把各種用戶行為分離出來並創建視圖方便後續查詢用戶行為數據
查詢整體數據漏斗
——Excel可視化:
用戶從瀏覽到購買整體轉化率2.3%,具體主要在哪個環節流失還需要再細分用戶路徑分析
——分析思路:
——SQL提數:
——PowerBI可視化:
用戶從瀏覽到購買的路徑主要有4條,路徑越長轉化率越底
路徑1:瀏覽→購買:轉化率1.45%
路徑2:瀏覽→加購物車→購買:轉化率0.33
路徑3:瀏覽→收藏→購買:轉化率0.11%
路徑4:瀏覽→收藏→加購物車→購買:轉化率0.03%
——分析思路:
——SQL提數:
——Excel可視化:
——描述性分析:
瀏覽量top100的商品瀏覽量呈階梯分布,越靠前的階梯之間的落差相對越大在這個階梯中的商品越少,越靠後商品瀏覽量階梯之間的落差相對越小,同階梯內的商品越多。
瀏覽量TOP100的商品所屬類目中,4756105,3607361,4357323三個類目瀏覽量遠超其他類目。
——分析思路:
——SQL提數:
查詢計算商品轉化率,升序排列,取前100個
——Excel可視化:
——描述性分析:
從商品看:有17款商品轉化率超過了1。
從類目看:這些商品所屬類目分布均勻,除965809,4801426,2735466,2640118,5063620,4789432,2945933這7個類目之外,其他類目都只有一個商品在轉化率TOP100的商品中。
——分析思路:
用戶價值分析常用的分析方式是RFM模型
本次分析中的R,F,M具體定義(僅用於演示分析方法,無實際業務參考價值):
——SQL取數與分析:
1)建立打分標准:先計算R,F的值,並排序,根據R,F值最大值和最小值得區間設計本次得打分標准
-查詢並計算R,F值創建視圖
-引用RF數值表,分別查詢R,F的最大值和最小值
-結合人工瀏覽的建立打分標准
2)給R,F按價值打分
3)計算價值的平均值
4)用平均值和用戶分類規則表比較得出用戶分類
——Excel可視化
通過描述性分析得到可視化的數據後我們一般會先看一下是否符合業務常識
如果符合常識接下來我們會通過與行業平均數據和本產品的同比環比對比看是否正常,如果不正常就要找原因,設計解決方案,如果正常那就看是否有可以優化的地方。
我們首先來看一下這些描述性分析是否符合業務常識和指標是否正常:
1.活躍曲線整體為上升狀態,同為周六日,12月2號,3號相比11月25日,26日活躍度更高。
2.用戶在周六周日相比其他時間更活躍
3.一天內用戶活躍的最高峰期為21點
4.從2017年11月15日致2017年12月3日,活躍用戶新增38%
5.從2017年11月15日致2017年12月3日,活躍用戶次日留存增長18.67%,當日的活躍用戶留存也在快速增長,第七日留存比次日留存高18.56%。
6.用戶從瀏覽到購買整體轉化率2.3%
7.用戶從瀏覽到購買的路徑主要有4條,路徑越長轉化率越低。
8.瀏覽量top100的商品瀏覽量呈階梯分布,越靠前的階梯之間的落差相對越大在這個階梯中的商品越少,越靠後商品瀏覽量階梯之間的落差相對越小,同階梯內的商品越多。
9.瀏覽量TOP100的商品所屬類目中,4756105,3607361,4357323三個類目瀏覽量遠超其他類目。
10.從商品看:有17款商品轉化率超過了1。
11.從類目看:這些商品所屬類目分布均勻,除965809,4801426,2735466,2640118,5063620,4789432,2945933這7個類目之外,其他類目都只有一個商品在轉化率TOP100的商品中。
根據以上診斷分析我們梳理出了以下假設,做假設驗證。
假設1:這些商品中有高轉化率的爆款商品
對比瀏覽量TOP5的商品,發現這些商品轉化率在同一類目下並不高,假設不成立
假設2:4756105,3607361,4357323三個類目屬於高頻剛需類目
-創建類目購買頻次表
-計算類目購買頻次平均值
-查詢4756105,3607361,4357323三個類目的購買頻次
4756105,3607361,4357323三個類目的用戶購買頻次明顯高於平均值,假設成立
假設3:有部分用戶是未點擊商詳直接從收藏和購物車購買的。
用戶不是直接從收藏和購物車購買的,只是後續復購未點擊商詳,假設不成立
假設4:淘寶推薦的商品主要是「同一類目下的高轉化商品」
用Excel對瀏覽量TOP100的商品ID和轉化率TOP100的商品ID進行去重,結果無重復值,假設不成立
3.結論:
1)用戶活躍:用戶活躍曲線整體呈上升趨勢,在一周中周六,周日活躍度比平時更高,在一天中用戶活躍曲線從凌晨4點開始往上升,在中午12點和下午5~6點有兩個小低谷(吃飯),到晚上9點時活躍度達到頂峰。
2)用戶留存:從2017年11月15日致2017年12月3日的用戶留存數據來看,淘寶的用戶留存數據較好,活躍用戶次日留存增長18.67%,當日的活躍用戶留存也在快速增長,第七日留存比次日留存高18.56%。
3)用戶轉化:整體轉化2.3%,用戶從瀏覽到購買的路徑主要有4條,路徑越長轉化率越低。
4)平台推薦與用戶偏好:從數據集中的數據來看,排除用戶興趣偏好標簽,淘寶給用戶用戶推送的商品主要是高頻剛需的類目,促使用戶復購,流量迴流平台。
以上結論受數據量和數據類型的影響,並不一定準確,僅用來練習數據分析方法。
(考慮到閱讀體驗文章中只放了SQL截圖,如需PDF版本,再公眾號後台回復「用戶行為分析」領取)
C. MySQL新增留存率
沒錯,留存的問題還沒有寫完,之前兩篇把日、周、月當期活躍用戶在後續周期的留存率問題解決了。但是還有個非常重要的指標,當期新增用戶的留存率,這個指標也是很有價值的,我們必須要關注不同日期拉新用戶的質量如何,看看不同時期新用戶的後續留存情況,對後續拉新的時間選擇也是有參考價值的。
其實實現也很簡單,只需要在之前的基礎上,先把當期的首次登陸用戶找出來就行了。實現方式是,按照用戶聚合,然後取日期最小值就能取出每個用戶首次登陸日期了,SQL語句如下↓
然後就以此為基礎,通過左連接把用戶表格再連接一次,判斷與首次登陸的日期相差多少天就行了,就能判斷是第N天有活躍,就能計算N日留存和留存率了,SQL語句和結果如下↓
後面就和之前思路一樣了,就可以求出日留存率情況了,SQL語句如下,解釋可以看前面兩篇。
然後按月實現方式和上一篇一樣的思路,關聯一個輔助表就行了,這里不詳細解釋了,可以參考上一篇,完整SQL語句和結果如下↓
那麼按周的留存率也是一樣的,SQL語句和結果如下↓
End
◆ PowerBI開場白
◆ Python高德地圖可視化
◆ Python不規則條形圖
D. SQL計算電商各項指標數據
本次筆記主要是記錄通過SQL計算電商各項指標數據,包括AARRR部分指標、RFM模型等常用的指標數據;
平台指標:
商品指標:
用戶行為指標:
RFM模型:見之前的文章《 SQL建立RFM模型指標的兩種方法對比 》
用戶留存率:見之前文章《 SQL 查詢用戶留存率(根據兩種不同定義計算) 》
首先我們導入相關數據,並去重數據放進新表 temp_trade;
由於時間關系,以導入如下數據,期間利用
SET date_time = STR_TO_DATE(time,'%Y-%m-%d %H');
set dates=date(date_time);
這兩個函數對原表(紅框)日期進行處理;
再檢查一下關鍵欄位有無缺失值
查詢後得出並無缺失。
查詢結果無異常值;
檢查用戶行為數據有沒有其他類型;
查詢結果無異常值;
-- 建新表,放進 去重後的 數據
create table temp_trade like o_retailers_trade_user;
insert into temp_trade select distinct * from o_retailers_trade_user;
查詢結果:
這里定義跳失率=只有瀏覽行為的用戶數/總用戶數
查詢結果
這里的購買轉化率定義為:某段時間產生購買行為的用戶數/所有到達店鋪的訪客人數
查詢結果:
同時可以通過這演算法求得:每天總行為次數、每天點擊次數、收藏次數、加購物⻋次數、購買次數
查詢結果如下:
由於轉化率的對象是商品,所以以商品id做分組,求對應的用戶行為數求和。可得出每商品的在該段時間內的瀏覽、收藏、加購、購買次數,同時可求得商品購買轉化率。
查詢結果:
此方法與上面商品轉化率大致相同,分組對象改為品類id即可。
查詢結果:
首先創建hours的新欄位,並提取時間;
查詢結果如下:
首先求出各用戶的購買次數
查詢結果:
用case when函數統計出各復購買次數的用戶數
查詢結果如下:
最後將行為串聯起來,並對其進行用戶數統計;
查詢結果如下:
(完結)
E. 怎麼用sql查詢昨天,今天,明天和本周的記錄
工具/材料:Management Studio。
1、首先戚咐在桌面上,點擊「Management Studio」圖標。
F. 請問用sql,怎麼在一條語句內查詢上周庫存、本周庫存和總庫存
SELECT
COALESCE ( SUM( CASE WHEN 日期 = 上周日期函數 THEN 單個庫存 ELSE 0 END ), 0 ) AS 上周總庫存,
COALESCE ( SUM( CASE WHEN 日期 = 本周日期函數 THEN 單個庫存 ELSE 0 END ), 0 ) AS 本周總庫存,
SUM(單個庫存) AS 總庫存
FROM
庫存表
用case then 大概就這意思,具體的參數自己修改修改就行了。
G. 每一天的新用戶的次日留存率,這個SQL應該怎麼處理
1select ( select count(distinct userid ) from 登錄表 where 登錄時間 = 今天 ) / ( select count(1) from 注冊表 where 注冊時間 = 昨天 ) as 戶留存率
H. sql 語句怎麼查詢一周的數據
select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查詢當天日期在一周年的數據
select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查詢當天的所有數據
--查詢當天:
select * from info where DateDiff(dd,datetime,getdate())=0
--查詢24小時內的:
select * from info where DateDiff(hh,datetime,getDate())<=24
--info為表名,datetime為資料庫中的欄位值
--查詢當天:
select * from info where DateDiff(dd,datetime,getdate())=0
--查詢24小時內的:
select * from info where DateDiff(hh,datetime,getDate())<=24
--info為表名,datetime為資料庫中的欄位值
I. sql語句如何求次日留存以及三日留存,分比較少,但是還是希望大俠們幫忙多謝!!!
select distinct(convert(char(10),date,120)) time from 表 where day(getdate())=day(date)+1
J. 一般次日留存,3日留存,7日留有多少
在互聯網行業中,用戶在某段時間內開始使用應用,經過一段時間後,仍然繼續使用應用的被認作是留存;這部分用戶占當時新增用戶的比例即是留存率,會按照每隔1單位時間(例日、周、月)來進行統計。
次日留存率:(當天新增的用戶數,在第2天還登錄的用戶數)/當天新增的用戶數。
第3日留存率:(當天新增的用戶數,在往後的第3天還有登錄的用戶數)/當天新增的用戶數。
第7日留存率:(當天新增的用戶數,在往後的第7天還有登錄的用戶數)/當天新增的用戶數。
第30日留存率:(當天新增的用戶數,在往後的第30天還有登錄的用戶數)/當天新增的用戶數。
含義
留存指的就是「有多少用戶留下來了」。留存用戶和留存率體現了應用的質量和保留用戶的能力。
留存率=登錄用戶數/新增用戶數*100%(一般統計周期為天)。
新增用戶數:在當前時間段新注冊登錄應用的用戶數。
登錄用戶數:在當前時間段至少登錄過一次的用戶數。
活躍用戶數:登錄用戶數-新增用戶數。