首页 > 试题广场 >

考试分数(一)

[编程题]考试分数(一)
  • 热度指数:83802 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

牛客每次考试完,都会有一个成绩表(grade),如下:

id job score
1 C++ 11001
2 C++
10000
3 C++
9000
4 Java 12000
5 Java
13000
6 JS 12000
7 JS
11000
8 JS
9999

第1行表示用户id为1的用户选择了C++岗位并且考了11001分

。。。

第8行表示用户id为8的用户选择了JS岗位并且考了9999

请你写一个sql语句查询各个岗位分数的平均数,并且按照分数降序排序,结果保留小数点后面3位(3位之后四舍五入):

job
avg
Java 12500.000
JS 10999.667
C++ 10000.333

(注意: sqlite 1/2得到的不是0.5,得到的是0,只有1*1.0/2才会得到0.5,sqlite四舍五入的函数为round)

示例1

输入

drop table if exists grade;
CREATE TABLE  grade(
`id` int(4) NOT NULL,
`job` varchar(32) NOT NULL,
`score` int(10) NOT NULL,
PRIMARY KEY (`id`));

INSERT INTO grade VALUES
(1,'C++',11001),
(2,'C++',10000),
(3,'C++',9000),
(4,'Java',12000),
(5,'Java',13000),
(6,'JS',12000),
(7,'JS',11000),
(8,'JS',9999);

输出

Java|12500.000
JS|10999.667
C++|10000.333
头像 牛客题解官
发表于 2025-03-18 18:27:14
精华题解 这道题目要求我们计算每个岗位的平均分数,我们要做的事情如下: 1. 确定总体问题 我们需要计算每个岗位的平均分数,并按平均分数降序排列,结果保留小数点后三位。 2. 分析关键问题 计算平均分数:使用AVG函数计算每个岗位的平均分数。 保留小数点后三位:使用ROUND函数保留小数点后三位。 排序输出 展开全文
头像 超超i7宝
发表于 2020-11-25 00:26:00
该题目考核的是 sql的平均精确到小数点后某几位的需求在MySQL中 使用 ROUND(聚合函数,精确到小数点后几位)的方法来满足该需求, 题解如下: SELECT job, ROUND(avg(score), 3)FROM gradeGROUP BY jobORDER BY avg(score) 展开全文
头像 SunburstRun
发表于 2020-09-21 10:09:32
1.首先题目肯定是按工作分组了,那么语句肯定是如下的: select xxx from grade group by job 然后知道分组之后的分数和是 sum(score) 求平均数就是 round(sum(score)*1.0/cou 展开全文
头像 高质量搬砖人
发表于 2021-02-01 12:06:42
方法)分组求平均值 SELECT job, ROUND(AVG(score),3) AS avg FROM grade GROUP BY job ORDER BY avg DESC;
头像 牛客145560421号
发表于 2021-07-13 14:48:57
计算平均数需要用到avg()函数,对于不同的岗位使用group by进行分组,round()函数可对小数进行四舍五入并指定保留几位小数,此处使用round(平均值,3)表示对平均值四舍五入并保留三位小数最后对平均成绩降序select job,round(avg(score),3) as avg fr 展开全文
头像 罗汉果和捆鸡
发表于 2020-10-02 15:54:07
1、求均值:avg函数2、保留三位小数:round(XXX,3)3、分组聚合 group by4、降序 order,desc select job , round(avg(score),3) as avg from grade group by job order by avg desc
头像 此用户名涉嫌违规
发表于 2021-03-11 17:33:26
题目描述:写一个sql语句查询各个岗位分数的平均数,并且按照分数降序排序,结果保留小数点后面3位(3位之后四舍五入)。尝试用format(): select job , format(avg(score),3) from grade group by job order by avg(score) 展开全文
头像 不做造粪机器
发表于 2024-07-27 23:55:14
select job, round(avg(score),3) avg from grade group by job order by avg desc 考察聚合函数的使用
头像 jiang_dr
发表于 2021-11-09 09:27:17
思路:题目主要考round函数的使用 round(x,d) ,x指要处理的数,d是指保留几位小数 这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0; 我们了解了round函数的用法,首先我们对岗位进行分组,求出job select job from 展开全文
头像 Ding_123
发表于 2021-12-08 09:57:22
知识点 1.按照job进行分组,计算平均值avg,round取三位小数,最后按照avg降序排序 代码 select job, round(avg(score),3) as avg from grade group by job order by avg desc
头像 想潜水的迪恩想要offer
发表于 2024-09-13 16:00:24
select avg_s.jobs, round(avg_s.avg,3) from (select distinct(job) jobs, avg(score) over(partition by job) avg 展开全文