精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

高頻HIVE-SQL筆試題詳解

運維 數據庫運維
在上期的SQL題目中,我們以求連續活躍為例,講述了lead 、lag錯位相減的用法。但若不采用錯位相減的話,其實也可以實現這一目的。本次我們就先講述一下最大連續活躍天數的第二種解法,然后再講述另一常見面試SQL題目。

[[396437]]

本文轉載自微信公眾號「數師兄」,作者數師兄。轉載本文請聯系數師兄公眾號。

在上期的SQL題目中,我們以求連續活躍為例,講述了lead 、lag錯位相減的用法。但若不采用錯位相減的話,其實也可以實現這一目的。本次我們就先講述一下最大連續活躍天數的第二種解法,然后再講述另一常見面試SQL題目。

這一方法就是利用row_number給每一行生成一個連續的序號,這樣,在連續活躍的時間段,就有了一個對照值,利用日期和行號這兩者就可以得到一個差值,在連續活躍的時段內,其差值是相同的,那么我們按照這個差值進行分組就可以進一步計算本次連續活躍有多少天了。

SQL如下

  1. WITH active AS 
  2.   (SELECT 100 UID, 
  3.               '2021-04-01'dt 
  4.    UNION ALL SELECT 101 UID, 
  5.                         '2021-04-01'dt 
  6.    UNION ALL SELECT 102 UID, 
  7.                         '2021-04-01'dt 
  8.    UNION ALL SELECT 103 UID, 
  9.                         '2021-04-01'dt 
  10.    UNION ALL SELECT 100 UID, 
  11.                         '2021-04-02'dt 
  12.    UNION ALL SELECT 101 UID, 
  13.                         '2021-04-02'dt 
  14.    UNION ALL SELECT 102 UID, 
  15.                         '2021-04-02'dt 
  16.    UNION ALL SELECT 103 UID, 
  17.                         '2021-04-02'dt 
  18.    UNION ALL SELECT 104 UID, 
  19.                         '2021-04-02'dt 
  20.    UNION ALL SELECT 100 UID, 
  21.                         '2021-04-03'dt 
  22.    UNION ALL SELECT 104 UID, 
  23.                         '2021-04-03'dt 
  24.    UNION ALL SELECT 101 UID, 
  25.                         '2021-04-04'dt 
  26.    UNION ALL SELECT 102 UID, 
  27.                         '2021-04-04'dt 
  28.    UNION ALL SELECT 103 UID, 
  29.                         '2021-04-04'dt 
  30.    UNION ALL SELECT 104 UID, 
  31.                         '2021-04-04'dt 
  32.    UNION ALL SELECT 105 UID, 
  33.                         '2021-04-04'dt 
  34.    UNION ALL SELECT 102 UID, 
  35.                         '2021-04-03'dt) 
  36. SELECT UID, 
  37.        max(days)days 
  38. FROM 
  39.   (SELECT date_sub(dt,rn), 
  40.           UID, 
  41.           count(DISTINCT dt)days 
  42.    FROM 
  43.      (SELECT UID, 
  44.              dt, 
  45.              row_number()over(PARTITION BY UID 
  46.                               ORDER BY dt)rn 
  47.       FROM active)x 
  48.    GROUP BY date_sub(dt,rn), 
  49.             UID)y 
  50. GROUP BY UID 

結果如下:

至此,連續活躍的問題就告一段落了。下面我們來看另一個常見問題:

2.行列轉換

(1)某直播產品,直播記錄表lives中有liveid(直播id)、invite_list(邀約名單,string,用戶id以“,”分割)字段,直播觀看記錄表record中有uid(用戶id)、liveid(直播id)、duration(觀看時長),試求出邀約名單中所有用戶的觀看時長

由于存在邀約用戶未進房觀看的問題,所以我們直接從觀看記錄中來取,不一定能將名單中所有用戶包含進去,所以,我們需要以直播記錄中的邀約名單為準。這就需要利用explode和lateral view來將這個string類型轉換為行記錄的形式。

仍然是使用with構造lives和record兩個簡單的臨時表,詳細SQL如下:

  1. with lives as
  2. select 100 liveid,'A01,A02,A03,A04'invite_list union all 
  3. select 101 liveid,'A05,A06,A07,A08'invite_list  
  4. ), 
  5. record as
  6. select 100 liveid,'A01' uid,30 duration union all 
  7. select 100 liveid,'A02' uid,50 duration union all 
  8. select 100 liveid,'A03' uid,15 duration union all 
  9. select 101 liveid,'A07' uid,20 duration union all 
  10. select 101 liveid,'A08' uid,60 duration 
  11.  
  12. select 
  13. list.liveid,list.ulist,if(record.duration is null,0,record.duration)duration 
  14. from ( 
  15. select liveid,ulist 
  16. from lives  
  17. lateral view explode(split(invite_list,',')) uid as ulist 
  18. )list left join record on list.liveid=record.liveid and list.ulist=record.uid 

這里簡單說明下:lateral view 是為原表調用explode函數,將一個array或者map的字段分解成多行并作為一個臨時表,然后再與其他字段組合到一起。

(2)某APP用戶訪問頁面記錄record,含有字段uid(用戶id)、pageid(頁面id),將每個用戶的訪問路徑輸出在一個字段中

前一道題目是列轉行,這道題是行專列。利用collect_set可以將分組下面某個字段的所有記錄聚合成一個列表,然后可以進一步使用concat_ws函數把array轉為字符串,并用“>”將其連接起來。

  1. WITH record as 
  2.   (SELECT 100 UID,'A01' pageid 
  3.    UNION ALL SELECT 100 UID,'A02' pageid 
  4.    UNION ALL SELECT 100 UID,'A03' pageid 
  5.    UNION ALL SELECT 101 UID,'A07' pageid 
  6.    UNION ALL SELECT 101 UID,'A08' pageid) 
  7.     
  8.     
  9. SELECT UID, 
  10.        concat_ws('>',collect_list(pageid))page 
  11. FROM record 
  12. GROUP BY UID 

3.求留存

對于多數互聯網公司來說,任何時候留存率都是重中之重。所以在數據分析的面試當中,求留存率的SQL題目出現的頻率也是極高。

所謂“留存率”,通常是定義一個初始行為與一個后繼行為,符合初始條件的用戶量在經過N天之后,剩余的比例就是留存率。發散來講,回訪、復看等概念也與留存相類似。如:

某APP新注冊用戶表user,含有字段uid(用戶id)、dt(注冊日期),活躍表active,有字段uid(用戶id),dt(活躍日期),求每天新增用戶的次日留存率、次2日留存率、次3日留存率……次7日留存率

此題目就是以新注冊作為初始行為,活躍作為后繼行為。顯而易見地,我們可以將初始行為與后繼行為做左連接,然后按注冊日期進行聚合,求相應的新增用戶和次N日留存人數。

  1. WITH user as 
  2.   (SELECT 100 UID,'2021-01-01' dt 
  3.    UNION ALL SELECT 101 UID,'2021-01-01' dt 
  4.    UNION ALL SELECT 102 UID,'2021-01-01' dt 
  5.    UNION ALL SELECT 103 UID,'2021-01-02' dt 
  6.    UNION ALL SELECT 104 UID,'2021-01-02' dt 
  7.    UNION ALL SELECT 105 UID,'2021-01-02' dt 
  8.    UNION ALL SELECT 106 UID,'2021-01-02' dt), 
  9.    active as
  10.    select 100 UID,'2021-01-01'dt union all 
  11.    select 100 UID,'2021-01-02'dt union all 
  12.    select 100 UID,'2021-01-03'dt union all 
  13.    select 100 UID,'2021-01-05'dt union all 
  14.    select 100 UID,'2021-01-07'dt union all 
  15.    select 101 UID,'2021-01-01'dt union all 
  16.    select 101 UID,'2021-01-07'dt union all 
  17.    select 102 UID,'2021-01-01'dt union all 
  18.    select 103 UID,'2021-01-01'dt union all 
  19.    select 103 UID,'2021-01-02'dt union all 
  20.    select 103 UID,'2021-01-03'dt union all 
  21.    select 103 UID,'2021-01-05'dt union all 
  22.    select 104 UID,'2021-01-02'dt union all 
  23.    select 104 UID,'2021-01-03'dt union all 
  24.    select 104 UID,'2021-01-04'dt union all 
  25.    select 105 UID,'2021-01-02'dt union all 
  26.    select 105 UID,'2021-01-03'dt union all 
  27.    select 105 UID,'2021-01-04'dt union all 
  28.    select 105 UID,'2021-01-05'dt union all 
  29.    select 105 UID,'2021-01-07'dt union all 
  30.    select 106 UID,'2021-01-02'dt union all 
  31.    select 106 UID,'2021-01-04'dt  
  32.    ) 
  33.  
  34. select 
  35. user.dt, 
  36. count(distinct user.uid)new_user, 
  37. count(distinct if(datediff(active.dt,user.dt)=1,active.uid,null))retain1, 
  38. count(distinct if(datediff(active.dt,user.dt)=2,active.uid,null))retain2, 
  39. count(distinct if(datediff(active.dt,user.dt)=3,active.uid,null))retain3, 
  40. count(distinct if(datediff(active.dt,user.dt)=4,active.uid,null))retain4, 
  41. count(distinct if(datediff(active.dt,user.dt)=5,active.uid,null))retain5, 
  42. count(distinct if(datediff(active.dt,user.dt)=6,active.uid,null))retain6, 
  43. count(distinct if(datediff(active.dt,user.dt)=7,active.uid,null))retain7 
  44. from user left join active on user.uid=active.uid 
  45. group by user.dt 

其結果如下:

 

這種方法可能比較麻煩一些,得把要求的每一個留存指標都要單獨寫一個字段。若想省事兒,可以單獨求出每日的新增數量,再將新增表與活躍表連接而求出每個注冊日期在后續每天的活躍數量,然后將新增數量與活躍數量再進行關聯,從而求得任意周期的留存。

 

責任編輯:武曉燕 來源: 數師兄
相關推薦

2021-04-21 08:11:09

HIVE-SQLSQL數據庫

2009-08-01 22:47:13

ASP.NET筆試題目ASP.NET

2021-12-08 11:18:21

Spring Bean面試題生命周期

2021-02-23 12:43:39

Redis面試題緩存

2015-04-07 14:05:13

前端阿里在線筆試題

2009-06-15 17:18:25

Java筆試題

2010-08-11 12:07:08

騰訊筆試題騰訊筆試題

2010-08-11 11:32:57

谷歌筆試題谷歌筆試題

2009-07-28 13:35:18

2010-08-11 11:22:00

IBM筆試題IBM筆試

2010-08-11 11:57:02

微軟筆試題微軟筆試題

2020-06-01 08:39:12

JavaScript開發技術

2010-08-18 10:17:00

2010-08-16 15:27:22

雅虎筆試題

2021-01-22 11:58:30

MySQL數據庫開發

2010-08-18 10:27:56

2011-08-11 17:39:25

Objective-C筆試題

2009-07-14 10:05:02

HCDA認證考試筆試題

2010-08-31 23:15:42

IT筆試題企業

2020-07-14 16:08:33

數據分析Python筆試
點贊
收藏

51CTO技術棧公眾號

亚洲国产裸拍裸体视频在线观看乱了中文 | 日韩免费大片| 亚洲精选视频在线| 精品国产电影| 中文字幕一区二区三区四区免费看 | 黑森林国产精品av| 国产精品久久二区二区| 成人久久18免费网站漫画| 成人午夜视频精品一区| 国产在线观看91一区二区三区 | 天天射—综合中文网| 精品免费视频一区二区| 日本成人黄色网| 日韩影视在线| 国产精品欧美精品| 久久国产日韩欧美| 国产美女三级无套内谢| 久久国产高清| 欧美国产精品人人做人人爱| 中文字幕第24页| 四虎884aa成人精品最新| 91麻豆精品久久久久蜜臀 | 韩国精品久久久| 欧美在线免费观看| 久久国产在线观看| 国产电影一区二区在线观看| 亚洲免费一在线| 亚洲欧洲国产视频| 国产美女视频一区二区| 在线观看网站黄不卡| 人妻夜夜添夜夜无码av | 亚洲精品成人a在线观看| 欧美亚洲爱爱另类综合| 天堂网av在线播放| 国产不卡视频一区二区三区| 国产日本欧美一区二区三区在线| www.毛片.com| 国产日韩欧美一区在线| 欧美精品videos| 校园春色 亚洲| 欧美丰满老妇| 日韩中文字幕在线免费观看| 久久只有这里有精品| 欧美调教在线| 精品av久久707| 扒开伸进免费视频| 成人福利一区| 亚洲成在人线av| 免费黄色av网址| 99re8这里有精品热视频8在线| 日韩一区二区影院| 欧美熟妇另类久久久久久多毛| av国产精品| 欧美一区二区三区在线看| 中文字幕在线观看日| 豆花视频一区| 欧美一级生活片| 波多野吉衣在线视频| 亚洲精品在线国产| 亚洲国产精品yw在线观看 | 亚洲 欧美 日韩系列| 都市激情综合| 欧美制服丝袜第一页| 国产又粗又长又大的视频| 精品自拍视频| 日韩一区二区三区精品视频| 欧美xxxx日本和非洲| 国产suv精品一区二区四区视频| 亚洲精品在线免费观看视频| 香港三日本8a三级少妇三级99| 欧美日韩麻豆| 亚洲人成在线免费观看| 刘亦菲国产毛片bd| 午夜精品免费| 欧美一区二三区| 中文字幕一区二区三区免费看| 国内欧美视频一区二区| 国产成人女人毛片视频在线| 天堂91在线| 国产日韩高清在线| 400部精品国偷自产在线观看 | 欧美91精品久久久久国产性生爱| 久久久久久久久伊人| 国产91亚洲精品一区二区三区| 天天躁日日躁狠狠躁伊人| 国产欧美精品一区二区三区四区 | 乱码第一页成人| 国产日韩欧美日韩| 亚洲成人黄色片| 久久综合九色综合欧美就去吻| 婷婷四月色综合| 七七成人影院| 在线观看亚洲一区| 亚洲妇女无套内射精| 制服丝袜日韩| 欧美另类第一页| 国产免费一区二区三区四区五区| 捆绑紧缚一区二区三区视频| 国产精品美女诱惑| 91社区在线观看播放| 亚洲成人av一区二区| 中文字幕第36页| 88久久精品| 亚洲亚裔videos黑人hd| 欧美成人精品欧美一级私黄| 爽好久久久欧美精品| 99视频在线| 福利视频在线播放| 动漫精品一区二区| 亚洲制服中文字幕| 国产最新精品| 97精品在线视频| 国产免费不卡视频| 国产日产欧产精品推荐色 | 欧美日韩精品久久久免费观看| 国产视频一区二区| 在线观看www91| 182在线视频| 午夜国产精品视频| 国产欧美中文字幕| 欧洲亚洲在线| 污片在线观看一区二区| 樱花草www在线| 俺要去色综合狠狠| 欧美自拍视频在线| 日本精品一二区| 一二三四社区欧美黄| 亚洲小视频网站| 精品日韩欧美一区| 日本一区二区三区在线播放| 天堂网在线播放| 午夜精品久久久久久久蜜桃app| 国产探花在线观看视频| 天天综合国产| 国产精品视频一| 成人高潮成人免费观看| 色8久久人人97超碰香蕉987| 免费看毛片的网站| 亚洲黄色视屏| 韩国精品一区二区三区六区色诱| 日本在线观看高清完整版| 日韩一级免费观看| 四虎免费在线视频| 国产精品一区二区久激情瑜伽| 欧美三级午夜理伦三级老人| 久久国内精品| 久久精视频免费在线久久完整在线看| 羞羞色院91蜜桃| 国产精品久久久久影院| 91极品视频在线观看| 日本一区二区高清不卡| 国产精品欧美一区二区三区奶水| 黄色的视频在线免费观看| 色天使久久综合网天天| 亚洲黄色免费视频| 六月丁香综合在线视频| 国产又大又长又粗又黄| 久久久久久爱| 久久久久一本一区二区青青蜜月| 亚洲精品久久久蜜桃动漫| 亚洲小说欧美激情另类| 久久无码专区国产精品s| 亚洲一级特黄| 久久久久欧美| 成人h在线观看| 久久久精品亚洲| 亚洲精选一区二区三区| 婷婷综合久久一区二区三区| 三叶草欧洲码在线| 日本免费在线视频不卡一不卡二| 亚洲午夜精品久久久中文影院av | 国产综合久久久久影院| 国产在线无码精品| 麻豆精品av| 国产福利视频一区二区| 免费网站免费进入在线| 日韩精品影音先锋| 男人午夜免费视频| 国产精品私房写真福利视频| 亚洲欧美日韩网站| 国产日韩欧美三区| 国产日本欧美在线| 加勒比视频一区| 国产精品丝袜白浆摸在线| www在线免费观看视频| 欧美精品一区二区三区蜜桃| 欧美精品韩国精品| 亚洲图片激情小说| 中文字幕5566| 国内成人免费视频| 日本精品www| 亚洲电影影音先锋| 国产综合欧美在线看| 成人视屏在线观看| 欧美激情区在线播放| 高清毛片在线看| 精品国产免费人成电影在线观看四季 | 成人性生交xxxxx网站| 日韩激情电影| 另类专区欧美制服同性| 男人av在线| 91精品国产欧美一区二区成人| 国产无遮挡又黄又爽| 欧美极品美女视频| 熟妇人妻久久中文字幕| 激情久久久久久久久久久久久久久久| 9久久9毛片又大又硬又粗| 久久久久久久久久久久久久久久久久| 精品久久久久久中文字幕动漫| 国产一区高清| 清纯唯美日韩制服另类| 怡红院av在线| 日韩最新中文字幕电影免费看| 香蕉视频免费看| 91精品国产综合久久小美女| 色一情一乱一伦| 亚洲午夜国产一区99re久久| 91大神福利视频| 国产三级欧美三级| 性欧美丰满熟妇xxxx性久久久| 韩国三级中文字幕hd久久精品| 中文字幕第80页| 亚洲欧美卡通另类91av| 成年女人18级毛片毛片免费| 忘忧草精品久久久久久久高清| 日韩精品欧美专区| 亚洲传媒在线| 精品一区二区国产| 国内精品偷拍| 国产精品对白刺激久久久| 国产精品18| 91精品国产综合久久香蕉的用户体验| 成人午夜精品| 日本高清不卡在线| 最新中文字幕在线播放| 8090成年在线看片午夜| 2019中文字幕在线电影免费| 欧美精品www在线观看| 中文在线字幕免费观看| www.亚洲一区| a黄色片在线观看| 久久成人精品电影| 污视频在线看网站| 九九热r在线视频精品| av在线看片| 久操成人在线视频| 人人澡人人添人人爽一区二区| 欧美成人免费全部观看天天性色| 国产精品一卡二卡三卡| 欧美成年人视频| 日本动漫同人动漫在线观看| 欧美第一淫aaasss性| 欧美人与禽猛交乱配| 久久久久久亚洲| 一本大道色婷婷在线| 日韩免费不卡av| 91天天综合| 成人精品视频99在线观看免费 | 久久久久久一区二区| 成年人网站大全| 三级欧美在线一区| 波多结衣在线观看| 国产在线视频不卡二| 少妇伦子伦精品无吗| www.久久精品| 国内精品卡一卡二卡三| 亚洲欧洲精品一区二区精品久久久| 日本午夜在线观看| 亚洲国产日韩在线一区模特| 欧美亚洲精品天堂| 欧美色图在线观看| jlzzjlzzjlzz亚洲人| 亚洲国产精久久久久久| 国产免费av高清在线| 久久精品电影一区二区| 欧美人与动牲性行为| 国产97人人超碰caoprom| 国产精品久久久久久久久免费高清| 成人网在线观看| 欧美综合精品| 亚洲欧美日韩精品综合在线观看| 欧美/亚洲一区| 国产精品97在线| 久久99国产精品久久99| 熟妇高潮一区二区| 日本一区二区视频在线| 青娱乐国产精品| 日韩欧美亚洲成人| jizz中国少妇| 亚洲一级免费视频| 秋霞在线午夜| 国产精品视频免费在线| 给我免费播放日韩视频| 亚洲国产欧美日韩| 亚洲国产专区| 中国黄色片一级| 久久理论电影网| 激情五月婷婷在线| 在线观看日韩国产| 黄片毛片在线看| 日韩中文字幕久久| 美女搞黄视频在线观看| 亚洲va欧美va国产综合剧情| 亚洲区小说区| 国产乱子伦精品无码专区| 日韩av二区在线播放| 欧美双性人妖o0| 一区免费观看视频| 日韩欧美一级大片| 亚洲国产成人精品一区二区| 国产原创视频在线观看| 国产91精品在线播放| 高清欧美性猛交xxxx黑人猛| 偷拍盗摄高潮叫床对白清晰| 西西人体一区二区| av av在线| 亚洲欧美色综合| 一级黄色大片免费| 国产亚洲精品久久久优势| 日本а中文在线天堂| 国产成人免费观看| 欧美体内she精视频在线观看| 天天综合网久久| 国产亚洲精品bt天堂精选| 成人免费看片98欧美| 精品国产一区二区三区av性色| 免费观看在线黄色网| 国产精品免费福利| 久久99久久人婷婷精品综合 | 久久久久久久中文字幕| 在线不卡中文字幕播放| 永久免费在线观看视频| 国产精品成人v| 亚洲人成亚洲精品| 久久无码高潮喷水| 成人av电影免费在线播放| 久久久久久久中文字幕| 日韩精品资源二区在线| mm1313亚洲国产精品美女| 91久久精品一区| 色婷婷亚洲mv天堂mv在影片| www.99av.com| 亚洲国产成人午夜在线一区| 在线视频精品免费| 怡红院精品视频| 精品国产黄a∨片高清在线| 亚洲一区二区免费视频软件合集| 久久精品国产成人一区二区三区 | 黄色毛片在线观看| 国产精品99久久久久久白浆小说| 国产精品一区高清| 自拍偷拍21p| 亚洲欧美中日韩| 国产99对白在线播放| 欧美精品video| 六月丁香久久丫| 可以免费在线看黄的网站| 久久久久久**毛片大全| 五月激情丁香网| 日韩中文字幕国产精品| 欧美.com| 日本一道本久久| 久久精品视频在线免费观看| 国产偷人爽久久久久久老妇app| 最近2019中文字幕一页二页| 999色成人| 男女日批视频在线观看| 91年精品国产| 中文字幕在线播放不卡| 久久亚洲国产成人| 久久亚洲道色| 亚洲一区二区三区四区五区xx| 一区在线观看视频| 色婷婷综合视频| 国产精品吊钟奶在线| **女人18毛片一区二区| 99精品一区二区三区无码吞精| 欧美日韩一区二区免费在线观看| 风间由美一区| 国产精品久久久久久久小唯西川 | 婷婷中文字幕综合| 69久久夜色| 国产精品嫩草在线观看| 久久精品天堂| 久草视频手机在线| 日韩精品久久久久久福利| xxxxx.日韩| 日本xxxxxxxxxx75| 亚洲欧美在线另类| 亚洲日本中文字幕在线| 亚洲free性xxxx护士hd| 母乳一区在线观看| 69av视频在线| 一道本无吗dⅴd在线播放一区| 一区二区三区免费在线看| 一女被多男玩喷潮视频| 亚洲女性喷水在线观看一区| 免费av在线电影| 国产福利久久| 国产在线精品视频|