题解 | #分组计算练习题#

分组计算练习题

https://www.nowcoder.com/practice/009d8067d2df47fea429afe2e7b9de45

# 你的查询返回结果需要对性别和学校分组,示例如下,结果保留1位小数,1位小数之后的四舍五入
select gender,	university,	count(gender) 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 ;


# 可以进行2次分组 count也可以是直接取 count(*)
SELECT gender,university,COUNT(*)user_num,AVG(active_days_within_30)avg_active_days,
AVG(question_cnt)avg_quesition_cnt
FROM user_profile
GROUP BY gender,university

对查询结果进行分组计算

作用:可以控制计算的级别:对全表还是对一组。

目的:细化计算函数的作用对象。

分组语句的一般形式:

[GROUP BY ]

[HAVING ]

GROUP BY子句中的分组依据列必须是表中存在的列名,不能使用AS子句指派的结果集列的别名。

带有GROUP BY 子句的SELECT语句的查询列表中只能出现分组依据列或统计函数,因为分组后每个组只返回一行结果。

例34.统计每门课程的选课人数,列出课程号和人数。

1

2

3

SELECT课程号, COUNT(课程号) AS选课人数

FROM成绩表

GROUPBY课程号

该语句首先对查询结果按课程号的值分组,所有具有相同课程号值的元组归为一组,然后再对每一组使用COUNT函数进行计算,求得每组的学生人数。

例35.查询每名学生的选课门数和平均成绩。

1

2

3

4

5

SELECT学号,

COUNT(*) 选课门数,

AVG(成绩) 平均成绩

FROM成绩表

GROUPBY学号

SQL错题 文章被收录于专栏

每天学习一遍 刷题刷题 越刷越强!

全部评论

相关推荐

头像 会员标识
昨天 17:08
已编辑
牛客_产品运营部_私域运营
腾讯 普通offer 24k~26k * 15,年包在36w~39w左右。
点赞 评论 收藏
分享
Natrium_:这时间我以为飞机票
点赞 评论 收藏
分享
小红书 后端开发 总包n+8w+期权
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务