题解 | #计算男生人数以及平均GPA#

计算男生人数以及平均GPA

http://www.nowcoder.com/practice/7d9a7b2d6b4241dbb5e5066d7549ca01

题意明确:题目要求得到『男性用户有多少人』以及『他们的平均gpa是多少』。


问题分解:

  1. 限定条件为 男性用户;
  2. 有多少人,明显是计数,count函数;
  3. 平均gpa,求平均值用avg函数;

细节问题:根据输出示例,有两个问题需要注意:

  1. 表头重命名,用as语法
  2. 浮点数的平均值可能小数点位数很多,按照示例保存一位小数,用round函数

因此完整代码呼之欲出:

select 
  count(gender) as male_num,
  round(avg(gpa), 1) as avg_gpa
from user_profile where gender="male";
全部评论
不要钻牛角尖,虽然大家共同的常识是id不为空,但这里的表没说.在不知道的情况下,用已知不为空的字段统计最合适,这里可能只是习惯。个人拙见仅作参考哈
7 回复 分享
发布于 2021-12-08 17:13
各位老哥 ,平均值直接写 avg(gpa) 和 round(avg(gpa),1)得到的结果一样 有点不太理解 能帮忙解答下吗
点赞 回复 分享
发布于 2022-09-06 09:22 江苏
为什么需要as进行表头重命名?我试了下好像不用as也是对的
2 回复 分享
发布于 2022-07-14 22:20
为什么不用分组呢? SELECT COUNT(gender) AS male_num, AVG(gpa) AS avg_gpa FROM user_profile GROUP BY gender HAVING gender='male';
1 回复 分享
发布于 2023-08-24 09:04 香港
使用count(*)或者count(gender) 都能通过,但是 count(gender)运行速率更快 这是为什么了?大佬求解
1 回复 分享
发布于 2023-01-05 16:19 山西
请问,count(gender)换成sum(gender='male')可以吗
1 回复 分享
发布于 2022-08-12 15:04
最后where gender=‘male’ 这里是不是应该是英文单引号😊
点赞 回复 分享
发布于 03-23 20:20 北京
round()里的,1是不是代表保留一位数
点赞 回复 分享
发布于 02-21 14:17 广东
其实还需要在添加一个条件,gender is not null
点赞 回复 分享
发布于 2023-10-21 18:02 广东
select count(gender) as male_num,round(avg(gpa),1) as avg_gpa from user_profile where gender ='man'请教各位为啥我的报错啊
点赞 回复 分享
发布于 2023-09-26 10:16 天津
为啥我重命名了,还是只有两个数没有表头嘞?
点赞 回复 分享
发布于 2022-10-04 20:51 广东
为什么male用的双引号而不是单引号啊?
点赞 回复 分享
发布于 2022-03-13 14:25
牛啊 思路打开了!!
点赞 回复 分享
发布于 2022-01-26 11:57
必须给你一个赞
点赞 回复 分享
发布于 2022-01-19 16:56
count(id) 也可以? 或者说这样效率低? 我看答案清一色 count(gender) 求大佬赐教
点赞 回复 分享
发布于 2021-12-04 15:14

相关推荐

04-29 22:35
门头沟学院 Java
牛友说改了名字能收到offer:旧图新发查看图片
点赞 评论 收藏
分享
评论
517
109
分享

创作者周榜

更多
牛客网
牛客企业服务