题目分析

我们需要从 user_profile 表中提取以下信息:

  • 每个学校每种性别的用户数量。
  • 每个学校每种性别的30天内平均活跃天数。
  • 每个学校每种性别的平均发帖数量。

解题思路

  1. 分组统计:根据 genderuniversity 进行分组。
  2. 计算用户数量:使用 COUNT() 函数计算每组的用户数量。
  3. 计算平均活跃天数和发帖数量:使用 AVG() 函数计算每组的平均活跃天数和发帖数量,并使用 ROUND() 函数保留到小数点后1位。
  4. **使用ORDERgenderuniversity 升序排列结果。

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;