题解 | SQL18 分组计算练习题
这道题开始和前面的SQL17比,开始变得复杂起来了。
这道题是需要先进行分组操作,而对字段进行分组,这样其他的字段就会根据这个分组的同一字段聚集在一个查询的单元格里。而关系型数据库是不允许一对多的查询,所以需要用聚合函数,把一个单元格里的数据给聚合在一起输出。
另外一点,这里面除了university
需要分组,gender
也需要进行分组,不然单独对university
分组之后,不同的gender
也会挤在一个单元格里。所以这里需要对university
和gender
两个字段都使用group by
函数来对这两个进行分组。
select gender, university,
count(device_id) as 'user_num',
avg(active_days_within_30),
avg(question_cnt)
from user_profile group by university, gender;