使用者行為分析,指定操作順序
使用者行為表tracking_log
使用者id | 操作編號 | 操作時間 |
---|---|---|
user_id | opr_id | log_time |
- 計算每天的訪客數和他們的平均操作次數。
select date(log_time), count(distinct user_id) as 訪客數量,
count(opr_id) as 操作次數, count(opr_id) / count(distinct user_id) as 平均操作次數
from tracking_log
group by date(log_time)
- 統計每天符合以下條件的使用者數:A操作之後是B操作,AB操作必須相鄰。
select date(log_time), sum(distinct user_id)
from
(select date(log_time), user_id, log_time, opr_id,
(lead(opr_id) over(partition by date(log_time), user_id order by log_time) as next_oprid
from tracking_log) as r
where r.opr_id = 'A' and r.next_oprid = 'B'
group by date(log_time)
1.首先使用視窗函式lead(opr_id) over(partition by date(log_time), user_id order by log_time)將每一個opr_id的下一個opr_id取出來,作為子表
2.然後使用where 篩選出opr_id為‘A’和下一個opr_id為‘B’的記錄
3.最後按日期進行分組,統計每天有AB操作的使用者數量
不正之處請大家指教
相關文章
- JavaScript執行順序分析JavaScript
- 欄位按照指定 ID 順序進行排序排序
- 進行List集合去重操作,分為保持原List集合元素順序和不保持原順序
- 測試平臺-unittest 指定順序執行用例
- Mysql按指定 ID 順序返回結果MySql
- MySQL 按指定 ID 順序返回結果MySql
- linux 中實現資料按照指定行號順序輸出Linux
- python pandasDataframe按指定index名或columns名(行名或列名)順序修改輸出內容的排列順序PythonIndex
- MySQL按指定順序排序(order by field的使用)MySql排序
- Sql執行順序SQL
- C++ 順序容器大小操作 resizeC++
- pipeline的執行順序
- C++ 順序容器的刪除操作C++
- MySQL 查詢常用操作(0) —— 查詢語句的執行順序MySql
- Select語句執行順序
- Spring Aop的執行順序Spring
- sql mysql 執行順序 (4)MySql
- SQL語句執行順序SQL
- js執行順序Event LoopJSOOP
- mySQL 執行語句執行順序MySql
- 能否在Oracle資料庫表中指定列順序OKOracle資料庫
- 頭禿了,使用@AutoConfigureBefore指定配置類順序竟沒生效?
- [RDMA] RDMA的不同操作是否保證順序?
- 關於JAVA中順序IO的基本操作Java
- 類的例項化順序和分析
- 聊一下Button事件、命令、行為的觸發順序事件
- mysql 語句的執行順序MySql
- [20191215]seq控制執行順序.txt
- 關於 Promise 的執行順序Promise
- sql select語法執行順序SQL
- SQL 語句的執行順序SQL
- async await、Promise、setTimeout執行順序AIPromise
- js解惑-函式執行順序JS函式
- 聊聊如何讓springboot攔截器的執行順序按我們想要的順序執行Spring Boot
- mysql 中sql語句關鍵字的書寫順序與執行順序MySql
- python運算子及優先順序順序Python
- 華為路由協議優先順序路由協議
- 何為CSS 樣式優先順序CSS