题目分析
我们需要从 user_profile
表中提取以下信息:
- 每个学校每种性别的用户数量。
- 每个学校每种性别的30天内平均活跃天数。
- 每个学校每种性别的平均发帖数量。
解题思路
- 分组统计:根据
gender
和university
进行分组。 - 计算用户数量:使用
COUNT()
函数计算每组的用户数量。 - 计算平均活跃天数和发帖数量:使用
AVG()
函数计算每组的平均活跃天数和发帖数量,并使用ROUND()
函数保留到小数点后1位。 - **使用
ORDER
按gender
和university
升序排列结果。
SQL 查询
以下是实现上述思路的 SQL 查询:
SELECT
gender,
university,
COUNT(*) AS user_num,
ROUND(AVG(active_days_within_30), 1) AS avg_active_day,
ROUND(AVG(question_cnt), 1) AS avg_question_cnt
FROM
user_profile
GROUP BY
gender, university
ORDER BY
gender, university;