牛客每天有很多人登入,請你統計一下牛客新登入使用者的次日成功的留存率,
有乙個登入(login)記錄表,簡況如下:
第1行表示id為2的使用者在2020-10-12使用了客戶端id為1的裝置第一次新登入了牛客網
第4行表示id為3的使用者在2020-10-12使用了客戶端id為2的裝置登入了牛客網
最後1行表示id為1的使用者在2020-10-14使用了客戶端id為2的裝置登入了牛客網
請你寫出乙個sql語句查詢新登入使用者次日成功的留存率,即第1天登陸之後,第2天再次登陸的概率,儲存小數點後面3位(3位之後的四捨五入),上面的例子查詢結果如下:
查詢結果表明:
id為1的使用者在2020-10-12第一次新登入了,在2020-10-13又登入了,算是成功的留存
id為2的使用者在2020-10-12第一次新登入了,在2020-10-13又登入了,算是成功的留存
id為3的使用者在2020-10-12第一次新登入了,在2020-10-13沒登入了,算是失敗的留存
id為4的使用者在2020-10-13第一次新登入了,在2020-10-14沒登入了,算是失敗的留存
固次日成功的留存率為 2/4=0.5
(sqlite裡查詢某一天的後一天的用法是:date(yyyy-mm-dd, '+1 day'),四捨五入的函式為round,sqlite 1/2得到的不是0.5,得到的是0,只有1*1.0/2才會得到0.5
mysql裡查詢某一天的後一天的用法是:date_add(yyyy-mm-dd,interval 1 day),四捨五入的函式為round)
找到表中每個id的登入最小時間,並加上1天構造新錶。
如果login中id,date資料存在於這個新錶中,就說明這個使用者是留存的
select
round(count(distinct user_id)*1.0/(select count(distinct user_id) from login),3)fromloginwhere (user_id,date) in(select user_id,date_add(min(date),interval 1 day) from login group by user_id)
定義和用法
date_add() 函式向日期新增指定的時間間隔。
語法date_add(date,interval expr type)
date 引數是合法的日期表示式。expr 引數是您希望新增的時間間隔。
type 引數可以是下列值:
microsecond
second
minute
hour
dayweek
month
quarter
year
second_microsecond
minute_microsecond
minute_second
hour_microsecond
hour_second
hour_minute
day_microsecond
day_second
day_minute
day_hour
year_month
mysql新增登入使用者 設定遠端登入使用者
mysql u使用者名稱 p密碼 在mysql所在的伺服器上登入mysqluse mysql 進入mysql資料庫grant all privileges on to test identified by 123456 with grant option 指所有ip都可用此使用者登入,這個值是ip的...
忘記Windows XP系統登入使用者的密碼
如果你安裝的是windows xp作業系統,不慎忘記了系統登入使用者 的密碼,你可以net命令來解決問題 windows xp中提供了 net user 命令,該命令可以新增 修改使用者賬戶資訊,其語法格式為 net user username password options domain net...
關於登入使用者的一些技巧
一,login name 登入使用者名稱 terminal line 使用終端裝置 login time 登入到系統的時間。二,下面對who命令的常用引數進行說明。m 它的效果同who am i顯示出自己在系統中的使用者名稱,登入終端,登入時間 q 只顯示使用者的登入帳號和登入使用者的數量 s 忽略...