每天一道大厂SQL题【Day26】脉脉真题实战(二)活跃时长的均值
发布人:shili8
发布时间:2025-01-19 07:03
阅读次数:0
**每天一道大厂SQL题 Day26**
**脉脉真题实战 (二)****活跃时长的均值**
在脉脉网上,用户可以发布自己的信息,并且可以浏览其他用户的信息。我们需要计算出所有用户的活跃时长的均值。
假设有以下表:
| 表名 | 字段名 | 类型 |
| --- | --- | --- |
| user_info | id | int |
| user_info | name | varchar(255) |
| user_info | active_time | int |
| user_info | last_login_time | datetime |
**问题描述**
计算出所有用户的活跃时长的均值,不少于1500字。
**解决方案**
首先,我们需要计算出每个用户的活跃时长。我们可以使用以下 SQL语句:
sqlSELECT id, name, active_time AS user_active_timeFROM user_info;
这个语句会返回一个结果集,其中包含每个用户的 ID、名称和活跃时长。
接下来,我们需要计算出所有用户的活跃时长的总和。我们可以使用以下 SQL语句:
sqlSELECT SUM(user_active_time) AS total_active_timeFROM (SELECT id, name, active_time AS user_active_time FROM user_info) AS subquery;
这个语句会返回一个结果集,其中包含所有用户活跃时长的总和。
最后,我们需要计算出所有用户的活跃时长的均值。我们可以使用以下 SQL语句:
sqlSELECT total_active_time / COUNT(id) AS average_active_timeFROM (SELECT id, name, active_time AS user_active_time FROM user_info) AS subquery;
这个语句会返回一个结果集,其中包含所有用户活跃时长的均值。
**完整代码**
sql-- 计算每个用户的活跃时长SELECT id, name, active_time AS user_active_timeFROM user_info; -- 计算所有用户的活跃时长的总和SELECT SUM(user_active_time) AS total_active_timeFROM (SELECT id, name, active_time AS user_active_time FROM user_info) AS subquery; -- 计算所有用户的活跃时长的均值SELECT total_active_time / COUNT(id) AS average_active_timeFROM (SELECT id, name, active_time AS user_active_time FROM user_info) AS subquery;
**注释**
* `user_info` 表包含每个用户的 ID、名称和活跃时长。
* `active_time` 字段表示每个用户的活跃时长。
* `last_login_time` 字段表示每个用户最后一次登录的时间。
* `COUNT(id)` 函数用于计算所有用户的数量。
* `SUM(user_active_time)` 函数用于计算所有用户活跃时长的总和。
**参考**
* [SQL语法]( />* [MySQL 文档]( />* [PostgreSQL 文档](