1. 程式人生 > 其它 >分組基操

分組基操

  萬丈高樓平地起,不要小看了任意一根稻草!

  現有一個學生簡介表,記錄了每一個學生的年齡,性別,學校,以及30天內活躍天數,發帖數量,回答數量等資訊,資料如下:

   其中,gender 性別包括 male 男,female 女,active_days_within_30 是30天內活躍天數,question_cnt 是發帖數量,answer_cnt 是回答數量

  現在需要對每個學校每種性別的學生人數以及活躍情況做分析,具體來說,就是統計每個學校的每種性別一共有多少人,這些人30天內平均活躍天數,平均發帖數量和平均回答數量

  這是一個基本的多欄位分組,分組之後的聚合統計。avg 與 sum 不能巢狀,所以需要用除法計算,再使用 round 函式四捨五入保留一位小數。

SELECT
	university,
	gender,
	count(id) user_num,
	ROUND(sum(active_days_within_30) / count(id), 1) avg_active_day,
	ROUND(sum(question_cnt) / count(id), 1) avg_question_cnt
FROM
	user_profile
GROUP BY
	university,
	gender

  結果如下所示:

  

   其中,user_num 統計了分組後的人數,sum 後的總髮帖和總活躍天數除以人數即是平均值,再使用 round 取捨即可

  再來點基操中的基操,count 1 = count * 不去空,count col 去空。