当前位置: 首页 > 面试题库 >

如何获得在每个学科中获得最高分的学生的名字?

漆雕兴平
2023-03-14
问题内容

我有下表

 Name  |  Subject  | Marks
 --------------------------
 a        M          20
 b        M          25  
 c        M          30
 d        C          44 
 e        C          45
 f        C          46 
 g        H          20

在这里,我有一个“学生”表,我想
从该学生表中获取从每个学科获得满分的学生的姓名,例如以下输出。

 Name | Subject | Marks  
 c        M        30
 f        c        46
 g        h        20

问题答案:

您可以使用ROW_NUMBER函数仅返回每个主题的“最佳”行:

SQL小提琴

MS SQL Server 2008架构设置

CREATE TABLE Student
    ([Name] varchar(1), [Subject] varchar(1), [Marks] int)
;

INSERT INTO Student
    ([Name], [Subject], [Marks])
VALUES
    ('a', 'M', 20),
    ('b', 'M', 25),
    ('c', 'M', 30),
    ('d', 'C', 44),
    ('e', 'C', 45),
    ('f', 'C', 46),
    ('g', 'H', 20)
;

查询1

SELECT Name, Subject, Marks
FROM(
  SELECT *, ROW_NUMBER()OVER(PARTITION BY Subject ORDER BY Marks DESC) rn
    FROM dbo.Student
)X
WHERE rn = 1

结果

| NAME | SUBJECT | MARKS |
--------------------------
|    f |       C |    46 |
|    g |       H |    20 |
|    c |       M |    30 |


 类似资料:
  • 我有下表 在这里,我有一个“学生”表,我想 从学生表中获取每个科目的最大分数的学生的姓名,如以下输出。

  • 问题内容: 我正在研究关键字提取问题。考虑非常普遍的情况 这给了我 很好 对于其中出现的任何新文档,是否有办法获得tfidf得分最高的前n个术语? 问题答案: 您必须做一点点的歌舞才能将矩阵转换为numpy数组,但这应该可以满足您的需求: 这给了我: 该电话确实是有用的,这里有它的文档。我们必须这样做,因为仅支持从小到大的排序。我们呼吁将维数减少到1d,以便可以使用排序后的索引来索引1d特征数组。

  • 我使用的是MySQL8.0.23版本 给出的表格是:- 我想要得到每个城市各科最高分学生的完整数据 -- 我已经用过这个了,但是我还是不能看到那个学生的名字和id

  • 我在一个数据库表中有学生分数,比如 和另一个数据库表中的学生个人信息,例如 > 我想将两个表连接起来进行研究,螺柱名称((m1,m2,m3)必须合计为“总计”)。 学生的成绩必须显示m1、m2、m3 我还想只显示那些获得及格分数的学生的排名。

  • 问题内容: 假设我有这样的pandas DataFrame: 我想获得一个新的DataFrame,其中每个ID的前2个记录如下: 我可以对分组依据中的记录进行编号: 但是,有没有更有效/更优雅的方法来做到这一点?还有一种更优雅的方法来对每个组中的数字进行记录(例如SQL窗口函数row_number())。 问题答案: 你试过了吗 Ouput生成: (请记住,根据数据,你可能需要先进行订购/排序)

  • 我想在每门课程中获得最高分,包括该课程的标题和参加该课程考试的学生姓名。我有这些表格,第一个学生 课程表 我还做了一张表格,让学生在课程考试中通过分数与课程联系起来 那我怎么能质疑呢。