大廠面試經典高階SQL題--次日留存率

為什么寫這么一篇文章呢,因為在之前的基金公司面試,1/50的錄取幾率,很榮幸自己可以打敗這么多候選人,被上海著名某基金公司錄取。有一大半人卡在了筆試環節,就說我自個廠商招的一群小伙伴,在辦公室做題的時候,很多小伙伴直接放棄了,知道自己連筆試都過不了。

而次日留存率,就是其中的第一道筆試題,足以說明它要求面試者的SQL素養之高。

ok,接下來給大家詳解一下本題的思路。

0,題目需求

有一張用戶登錄表(user_login_table),請統計每個日期新用戶的次日留存率。

user_idclient_idlogin_date
1A0022024-11-12
2A0052024-11-12
3A0022024-11-12
1A0062024-11-13
2A0012024-11-13
3A00092024-11-14
4A00082024-11-14
4A00072024-11-15
5A02492024-11-15

在這里,有一個特別重要的概念,需要跟大家解釋一下:
次日留存率:在一段時間(如第一天)的新增用戶中,在第二天再次成功啟動應用登錄的比例。

1,解題思路

首先,審題之后,總歸是要知道他的一個最終的結果的。

咱把結果數據展示一下:

daterate_of_next_surv--計算過程
2024-11-120.667(1,2)/(1,2,3)
2024-11-130/
2024-11-140.5(4)/(3,4)

最終的結果,咱只展示date和rate_of_next_surv這兩個字段即可。

dateratesurv
2024-11-120.667
2024-11-130
2024-11-140.5

這么得來的呢??

完我們在計算某天留存率的時候,當然是看看下一天,有哪些客戶還存在登錄(當然,就需要客戶去關聯),但是,時間也需要錯位關聯!!!關聯上的,就是留存下來的總人數。

2,解題代碼

--有一張用戶登錄表(user_login_table),請統計每個日期新用戶的次日留存率。--user_id	 client_id	login_date  date	ratesurvselect count(t1.user_id)--統計當天的所有用戶數,t1.login_date,count(t2.user_id)  --統計后一天關聯上的用戶,注意count(字段),會忽略字段的null值,count(t2.user_id)/count(t1.user_id) as  ratesurv  --次日留存率from      user_login_table t1left join user_login_table t2on t1.user_id = t2.user_idand t1.login_date = date_sub(t2.user_id,-1)group by t1.login_date;

上面涉及到兩個重要知識點:

1,屬于表的自關聯,關聯條件,除了用戶,還有時間(錯位關聯)。

2,count(用戶),會忽略字段為null的數據,言外之意,沒有關聯上的,就不統計。

當然,筆試過程中我們保留所需要的字段展示就可以了。

題目不難,但思路很重要。


歡迎一鍵三連,下次再會!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/39086.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39086.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39086.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

備份SQL Server數據庫并還原到另一臺服務器

我可以將SQL Server數據庫備份到另一臺服務器嗎? 有時您可能希望將 SQL數據庫從一臺服務器復制到另一臺服務器,或者將計算機復制到計算機。可能的場景包括測試、檢查一致性、從崩潰的機器恢復數據庫、在不同的機器上處理同一個項目等。 是的&#xff0c…

【嵌入式】探索嵌入式世界:在ARM上構建俄羅斯方塊游戲的奇妙之旅

文章目錄 前言:1. 簡介2. 總體設計思路及功能描述2.1 設計思路2.2 功能描述2.3 程序流程圖 3. 各部分程序功能及詳細說明3.1 游戲界面函數3.1.1 游戲界面中的圖片顯示3.1.2 游戲開始界面3.1.3 游戲主界面3.1.4 游戲結束廣告界面3.1.5 游戲界面中的觸摸反饋3.1.6 游戲…

C++11新特性【下】

一、lambda表達式 在C98中,如果想要對一個數據集合中的元素進行排序,可以使用std::sort方法。如果待排序元素為自定義類型,需要用戶定義排序時的比較規則,隨著C語法的發展,人們開始覺得上面的寫法太復雜了&#xff0c…

自動備份Docker中的mysql數據庫

先說一下,在Linux下備份mysql 1、先創建一個腳本文件 #!/bin/bash # MySQL 用戶、密碼、數據庫名稱 DB_USER"dbuser" DB_PASSWORD"dbpassword" DATABASE"mydatabase" # 創建備份目錄 BACKUP_DIR"/path/to/your/backup/dire…

化身李時珍弟子,演繹中醫藥故事,李良濟花神戲,創新傳承中醫藥文化

6月29日,李良濟與花神戲聯袂舉辦的兒童劇本,在李良濟嵩山店強勢開啟。 20余名小朋友,一起在這次中醫藥兒童劇本活動中,化身李時珍弟子,學中醫,識草藥,傳承中醫智慧,沉浸式學習傳統文…

Spring Boot與Apache Kafka的深度集成

Spring Boot與Apache Kafka的深度集成 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿!今天我們將探討如何在Spring Boot應用中實現與Apache Kafka的深度集成&am…

關于一維,二維正態分布的繪制

繪制一維正態分布代碼 % 給定的均值和標準差 mu 0; % 例如,你可以改變這個值 sigma 1; % 例如,你可以改變這個值 % 定義x的范圍(例如,從mu-3*sigma到mu3*sigma,步長為0.1) x mu - 3*sigma:0.1:m…

STM32 中斷編程入門

目錄 一、中斷系統 1、中斷的原理 2、中斷類型 外部中斷 定時器中斷 DMA中斷 3、中斷處理函數 中斷標志位清除 中斷服務程序退出 二、實際應用 中斷控制LED 任務要求 代碼示例 中斷控制串口通信 任務要求1 代碼示例 任務要求2 代碼示例 總結 學習目標&…

ROS學習筆記(17):建圖與定位(1)

目錄 0.前言 1.定位和建圖 1.里程計(Odometry) 2.掃描匹配(Scan Matching) 3.結尾 0.前言 好久不見各位,前段時間忙著考試(6級和一些專業課)和擺爛斷更了近30天,現在哥們回來更…

計算機畢業設計Python+Spark股票基金推薦與預測系統 股票基金可視化 股票基金推薦系統 股票基金可視化系統 股票基金數據分析 股票基金爬蟲大數據

目 錄 摘 要 Abstract 第1章 前 言 1.1 項目的背景和意義 1.2 研究現狀 1.3 項目的目標和范圍 1.4 論文結構簡介 第2章 技術與原理 2.1 開發原理 2.2 開發工具 2.3 關鍵技術 第3章 需求建模 3.1 系統可行性分析 3.2 功能需求分析 3.3 非功能性…

C++Primer Plus 第十四章代碼重用:編程練習,第一題

CPrimer Plus 第十四章代碼重用:編程練習,第一題 提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加 CPrimer Plus 第十四章代碼重用:編程練習,第一題 提示:寫完文章后,目錄可以自動生成&am…

高職人工智能專業實訓課之“生成對抗網絡(GAN)”

一、前言 生成對抗網絡(GAN)作為人工智能領域的一項重要技術,已經在圖像生成、風格遷移、數據增強等多個領域展現出巨大的潛力和應用價值。為了滿足高職院校對GAN專業實訓課程的需求,唯眾人工智能教學實訓憑借其前沿的教育技術平…

mst[講課留檔]

最小生成樹(Minimum Spanning Tree) (1)概念 我們知道,樹是有 n n n個結點, n ? 1 n-1 n?1條邊的無向無環的連通圖。 一個連通圖的生成樹是一個極小的連通子圖,它包含圖中全部的 n n n個頂點,但只有構成一棵樹的 n ? 1 n-1 …

內容營銷專家劉鑫煒:越是賺不到錢,越要加大推廣力度

這兩天,一位跟我們有長期合作關系的小微企業主老蘇問我。 “現在錢這么不好賺,品牌推廣應該怎么做?” 我說:“這是好機會,加大投放力度!” 老蘇很是不解,這時候不開源節流,還要加…

使用Git從Github上克隆倉庫,修改并提交修改

前言 本次任務主要是進行github提交修改的操作練習實踐,本文章是對實踐過程以及遇到的問題進行的一個記錄。 在此之前,我已經簡單使用過github,Git之前已經下好了,所以就省略一些步驟。 步驟記錄 注冊github賬號,gi…

【C++】C++指針在線程中調用與受保護內存空間讀取方法

引言 在C的多線程編程中,正確地管理內存和同步訪問是確保程序穩定性和安全性的關鍵。特別是當涉及到指針在線程中的調用時,對受保護內存空間的訪問必須謹慎處理,以防止數據競爭、死鎖和內存損壞等問題。本文將詳細探討C指針在線程中調用時如何…

理解 React 的嚴格模式

文章目錄 有什么優劣優點:缺點: 使用場景如何使用為整個應用啟用嚴格模式一部分代碼啟用嚴格模式 React 的 Strict Mode(嚴格模式)是一種用于檢測應用中潛在問題的開發工具。它不會渲染任何可見的 UI 元素,而是通過激活…

element-ui如何做表單驗證

Element UI 使用表單驗證通常涉及兩個主要組件&#xff1a;el-form 和 el-form-item。 el-form 負責管理表單數據和驗證規則&#xff0c;而 el-form-item 用于定義需要驗證的表單項。 <template><el-form :model"form" :rules"rules" ref"fo…

易校網校園綜合跑腿小程序源碼修復運營版

簡介&#xff1a; 易校網校園綜合跑腿小程序源碼修復運營版&#xff0c;帶服務端客戶端前端文檔說明。 源碼安裝方法&#xff1a; 需要準備小程序服務號 服務器 備案域名 校園網跑腿小程序源碼需要準備 1.小程序 2.服務器&#xff08;推薦配置2h4g3m&#xff09; 3.域名…

使用JMeter+Grafana+Influxdb搭建可視化性能測試監控平臺

【背景說明】 使用jmeter進行性能測試時&#xff0c;工具自帶的查看結果方式往往不夠直觀和明了&#xff0c;所以我們需要搭建一個可視化監控平臺來完成結果監控&#xff0c;這里我們采用三種JMeterGrafanaInfluxdb的方法來完成平臺搭建 【實現原理】 通過influxdb數據庫存儲…