MySQL 计算下表的用户平均停留时长: || userid || actionType || timestamp || =============================== || a || login || 1234567891 || || a || logout || 1234567892 || || b || login || 1234567893 || || a || login || 1234567894 || || b || logout || 1234567895 || || a || logout || 1234567896 |
时间: 2023-08-03 22:04:54 浏览: 70
你可以使用以下的SQL语句来计算用户的平均停留时长:
```sql
SELECT userid, AVG(logout_time - login_time) AS avg_stay_time
FROM (
SELECT userid, timestamp AS login_time
FROM your_table
WHERE actionType = 'login'
) AS logins
JOIN (
SELECT userid, timestamp AS logout_time
FROM your_table
WHERE actionType = 'logout'
) AS logouts ON logins.userid = logouts.userid
GROUP BY userid;
```
请将`your_table`替换为你的表名。这个查询首先会筛选出所有的登录记录和退出记录,然后通过内连接将它们匹配起来,并计算每个用户的平均停留时长。
相关问题
题目一: sql: 计算下表的用户平均停留时长: || userid || actionType || timestamp || =============================== || a || login || 1234567891 || || a || logout || 1234567892 || || b || login || 1234567893 || || a || login || 1234567894 || || b || logout || 1234567895 || || a || logout || 1234567896 || 题目二: sql: 计算用户每人每天的最后一次登录微信的停留时长: the_date,uid,timestamp,stay_time 例子: 20210329,user123,1617012000,600
题目一:
可以使用以下 SQL 查询语句计算用户平均停留时长:
```sql
SELECT userid, AVG(stay_time) AS avg_stay_time
FROM (
SELECT userid, TIMESTAMPDIFF(SECOND, MIN(timestamp), MAX(timestamp)) AS stay_time
FROM your_table
WHERE actionType IN ('login', 'logout')
GROUP BY userid
) t
GROUP BY userid;
```
请将 "your_table" 替换为你的表名。
题目二:
可以使用以下 SQL 查询语句计算用户每人每天的最后一次登录微信的停留时长:
```sql
SELECT DATE(FROM_UNIXTIME(timestamp)) AS the_date, uid, stay_time
FROM (
SELECT uid, MAX(timestamp) AS max_timestamp
FROM your_table
WHERE stay_time > 0
GROUP BY uid, DATE(FROM_UNIXTIME(timestamp))
) t
JOIN your_table ON t.uid = your_table.uid AND t.max_timestamp = your_table.timestamp;
```
请将 "your_table" 替换为你的表名。
MySQL计算表的用户平均时长,表中字段有userid,actiontype,timestamp
你可以使用以下SQL查询语句来计算表的用户平均时长:
```
SELECT userid, AVG(timestamp) AS average_duration
FROM your_table
GROUP BY userid;
```
这条查询语句会按照userid分组,并计算每个用户的平均时间戳。你可以将"your_table"替换为你实际使用的表名。请确保该表中包含userid、actiontype和timestamp字段。查询结果将返回每个用户的userid和平均时长。
如果你想要进一步筛选特定的actiontype,可以在查询语句中添加WHERE子句,例如:
```
SELECT userid, AVG(timestamp) AS average_duration
FROM your_table
WHERE actiontype = 'your_actiontype'
GROUP BY userid;
```
将"your_actiontype"替换为你想要筛选的具体actiontype。这样,查询结果将仅包含该actiontype的用户平均时长。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)