天天看點

mysql 查詢使用者_mysql查詢——統計每日新使用者數量

mysql 查詢使用者_mysql查詢——統計每日新使用者數量

點選上"藍字"關注我們

mysql 查詢使用者_mysql查詢——統計每日新使用者數量

下圖是一張網站使用者活動表(User_Activities),表中包含字段UserId(使用者編号)、Activity(使用者活動,可取值login、orders、logout)、Date(活動日期),現需要編寫一個查詢語句,統計網站每日的新使用者數量,即統計每日登入使用者中首次登入網站的使用者數。

mysql 查詢使用者_mysql查詢——統計每日新使用者數量

方法一:

第一步,根據UserId分組查詢,得出每個使用者的最小登入日期即各個使用者首次登入網站的日期。

select UserId,min(Date)as login_date

from User_Activities

where Activity='login'

group by UserId;

查詢結果如下:

mysql 查詢使用者_mysql查詢——統計每日新使用者數量

第二步,将第一步的查詢結果當做臨時表,分組統計每個login_date的使用者數量。

select login_date,count(UserId)as user_count

from

(

select UserId,min(Date)as login_date

from User_Activities

where Activity='login'

group by UserId

)ua

group by login_date

order by login_date;

最終查詢結果如下:

mysql 查詢使用者_mysql查詢——統計每日新使用者數量

方法二:

第一步,使用視窗函數rank()對UserId、Date進行分組排名。(視窗函數mysql8.0及以上版本可用)

select *,rank() over(partition by UserId order by Date) as rnk

from User_Activities

where Activity='login';

查詢結果如下:

mysql 查詢使用者_mysql查詢——統計每日新使用者數量

第二步,篩選排名為1的資料并分組統計每個Date的使用者數量。

select Date as login_date,count(UserId)as user_count

from

(select *,rank() over(partition by UserId order by Date) as rnk

from User_Activities

where Activity='login'

)ua

where rnk=1

group by Date

order by Date;

最終查詢結果如下:

mysql 查詢使用者_mysql查詢——統計每日新使用者數量

來都來了,點個在看再走吧~~~

mysql 查詢使用者_mysql查詢——統計每日新使用者數量

繼續閱讀