如何让两个不同的记录(包括相同分数的记录)高于平均值?不包括其余记录中的顶部。
这是我的示例表
| 身份证|分数|
| - ------|- ------|
| 一百一十一|八点五十分|
| 一百二十|七点四十五分|
| 一百二十三|九点一三分|
| 一百二十七|七点七零|
| 二百二十二|六点整|
| 二百三十二|七点七七|
| 三二一|六点八零|
| 三四二|六点九零|
| 四百五十三|六点六六|
| 五百六十四|九点零五分|
| 六六六|八点五十分|
| 八七六|八点九零|
首先,我需要弄清楚如何获得平均值。avg(scores) = 7.78
我的预期结果是:
| 身份证|分数|
| - ------|- ------|
| 八七六|八点九零|
| 一百一十一|八点五十分|
| 六六六|八点五十分|
到目前为止我已经尝试过:
select Examinee_number, score
from examinees
where score >
(select avg(score)
from examinees
order by score
limit 2);
select Examinee_number, score
from examinees
where score >
(select avg(score)
from examinees)
order by score desc
limit 2;
平均值应作为评分的参考,以防我只需要获得高于平均值(评分= 8.50)或低于平均值(评分= 7.77)的评分。
2条答案
按热度按时间a64a0gku1#
在MySQL 8+中,我们可以使用
RANK()
分析函数。为了找到除去两个最高分的平均分,我们可以尝试:iovurdzv2#