C++:假如有一些学生,提供学生的名字(字符串)和成绩,如何根据给定名字的字典序从小到大排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++:假如有一些学生,提供学生的名字(字符串)和成绩,如何根据给定名字的字典序从小到大排序相关的知识,希望对你有一定的参考价值。
如果使用c++的话,首先定义一个类为学生类class Student
{
String name;
int score[];
}
初始化之后,首先按照名称对student进行排序,在将score[]中的成绩按照大小进行排序 参考技术A std::sort不是可以自定义排序方式么追问
就是不会自定义排序=-=
结合3个表,根据平均分取名字
【中文标题】结合3个表,根据平均分取名字【英文标题】:Combine 3 tables and get name according to average scores 【发布时间】:2021-02-28 02:31:38 【问题描述】:我有一个关于 sql 的问题。 我有 3 张桌子。
表 1 是学生。它有学生证和学生姓名
表 2 是学校。它有学校ID和学校名称
表 3 是分数。它有学校ID,学生ID和分数
如果该学校的平均分数高于 70,我正在尝试编写一个查询,您可以在其中选择学校名称。
SCORES 表如下所示。我知道,同一个学生去两所学校听起来很愚蠢。忽略这个逻辑
分数
STUDENT_ID SCHOOL_ID SCORE
1 4 90
1 7 67
3 5 87
3 4 78
5 3 56
6 4 95
【问题讨论】:
家庭作业,很好。你试过什么?你有遇到什么问题吗?在寻求帮助时,minimal reproducible example 是一个很好的开始。 【参考方案1】:您可以使用having
子句进行聚合和过滤。如果你只想要学校的id
,只看分数表就可以得到你想要的结果:
select school_id, avg(scores) avg_score
from scores
group by school_id
having avg(scores) > 70
如果您想要学校名称,请使用join
:
select sh.school_id, sh.school_name, avg(sc.scores) avg_score
from schools sh
inner join scores sc on sc.school_id = sh.school_id
group by sh.school_id, sh.school_name
having avg(sc.scores) > 70
【讨论】:
您是否通过将 sh 放在 school 后面,sc 放在 score 后面来缩短表名? @SimpleProgramer:这些是表别名,SQL 语言的一个非常有用的特性。 我实际上稍微编辑了这个问题。我只需要学校名称 @SimpleProgramer:所以只需从select
子句中删除sh.school_id
...以上是关于C++:假如有一些学生,提供学生的名字(字符串)和成绩,如何根据给定名字的字典序从小到大排序的主要内容,如果未能解决你的问题,请参考以下文章