首页 > 试题广场 >

考试分数(一)

[编程题]考试分数(一)
  • 热度指数:82368 时间限制: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
select job,round(avg(score),3) avg
from grade
group by job
order by avg desc

发表于 2024-10-22 12:33:04 回复(0)
select job,round(avg(score),3) avg from grade 
group by job
order by avg desc;

编辑于 2024-02-05 14:01:20 回复(0)
select job,round(avg(score),3)
from grade
group by job
order by avg(score) desc;
编辑于 2024-01-22 21:35:29 回复(0)
# 请你写一个sql语句查询各个岗位分数的平均数,并且按照分数降序排序,结果保留小数点后面3位(3位之后四舍五入):

select job,
 round(avg(score),3) as avg_score 
from grade 
group by job 
order by 2 desc;

发表于 2023-09-25 11:12:04 回复(0)
select distinct job,round(avg(score) over(partition by job),3) as avg
from grade
order by avg desc;

发表于 2022-12-30 23:25:58 回复(0)
SELECT job, ROUND(avg(score), 3)
FROM grade
GROUP BY job
ORDER BY avg(score) DESC;
 先用AVG()函数求平均值,再用ROUND(num, count)函数求四舍五入和保留后的值。
发表于 2022-09-06 09:02:14 回复(0)
select job, round(avg(score),3) as avg 
from grade
group by job
order by avg desc
;

发表于 2022-07-12 17:15:05 回复(0)
select job,round(avg(score),3) `avg`
from grade
group by job
order by `avg` desc;

发表于 2022-06-13 00:51:21 回复(0)
select job,round(avg(score),3) as avg
from grade
group by job
order by avg(score) desc;
发表于 2022-06-10 14:29:26 回复(0)
select job,round(avg(score),3) as 'avg' from grade group by job order by avg desc 
发表于 2022-05-21 22:11:56 回复(0)
SELECT DISTINCT g1.job, ROUND(avg(g1.score),3) as avg
FROM grade g1
GROUP BY g1.job
ORDER BY avg desc

发表于 2022-05-13 15:42:03 回复(0)
select job,
round(avg(score),3) as avg
from grade 
group by job 
order by avg desc 
;

select distinct job,
round(avg(score) over (partition by job),3) as avg 
from grade 
order by avg desc 
;
分组聚合和窗口函数聚合都可以的
发表于 2022-05-10 14:47:13 回复(0)
select
    job,
    round(avg(score),3) as avg
from
    grade
group by
    job
order by
    avg desc;
发表于 2022-04-24 13:00:33 回复(0)
select job, round(avg(score) ,3)
from grade
group by job
order by avg(score) desc

发表于 2022-04-19 14:07:50 回复(0)
select job,round(avg(score),3) as avg from grade
group by job
order by avg desc ;
发表于 2022-04-19 09:31:44 回复(0)
select job,round(avg(score),3) 'avg'
from grade 
group by job 
order by avg(score) desc

发表于 2022-04-18 17:31:32 回复(0)
SELECT job,ROUND(AVG(score),3) avg
FROM grade
GROUP BY job
ORDER BY avg DESC

发表于 2022-04-07 17:34:50 回复(0)
SELECT
    job,
    ROUND(avg (score),3) avg
FROM
    `grade`
GROUP BY
    job
order by  avg desc 
发表于 2022-03-25 11:06:36 回复(0)
select job,round(avg(score),3) `avg`
from grade
group by job
order by avg desc

发表于 2022-03-23 13:23:21 回复(0)
select job,round(avg(score),3) as avg
from grade
group by job
order by avg desc

发表于 2022-03-13 15:22:03 回复(0)