当前位置: 首页 > 知识库问答 >
问题:

如何得到一个所有科目成绩都大于等于80分的学生的名字?

陶淳
2023-03-14

我有下表

Name  |  Subject  | Marks
 --------------------------
 a        M          70
 a        S          80  
 a        L          90
 a        G          100 
 b        M          80
 b        S          90  
 b        L          95
 b        G          100
 c        M          90
 c        G          100 

在这里,我有一个“学生”表,我想从学生表中获取所有科目的分数大于等于“80”的学生的姓名,如以下输出。

 Name 
 b
 c

共有3个答案

贾成天
2023-03-14

使用< code>CASE表达式检查大于或等于80的每一行。

查询

select t.Name from(
    select Name, Subject, Marks,
    case when Marks > 79 then 1 else 0 end as mark_status
    from your_table_name
) t
group by t.Name
having count(t.Marks) = sum(t.mark_status);
东博瀚
2023-03-14

您必须使用GROUP BY子句,如下所示。这是一个帮助你理解GROUP BY和HAVING子句的经典问题。GROUPBY实现了聚合,而HAVING允许您对其施加条件。

SELECT name
FROM student
GROUP BY name
HAVING MIN(mark) >= 80
岳宣
2023-03-14

一个简单的聚合。

select   name
from     my_table
group by name
having   min(marks) >= 80

在“真实世界”中,您可能有一个单独的学生表,每个学生占一行,这可能会稍微改变逻辑。最佳实现可能取决于每个学生在分数表中的平均行数。

 类似资料:
  • 问题内容: 我有下表 在这里,我有一个“学生”表,我想 从该学生表中获取从每个学科获得满分的学生的姓名,例如以下输出。 问题答案: 您可以使用ROW_NUMBER函数仅返回每个主题的“最佳”行: SQL小提琴 MS SQL Server 2008架构设置 : 查询1 : 结果 :

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

  • 想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。 学生班级有id名称和学生名单。我们现在有了学生名单,我们怎么才能筛选出有分数的学生呢

  • 除了从课堂维度查看数据之外,点击左侧【学生成绩】,可以查看学生维度的统计数据,关联mooc 或 spoc 课程的慕课堂,可以在学习表现中看到学生的视频观看个数、次数、时长、讨论区主题数、评论数、回复数、线上课程的学习总成绩。 提示:学生在MOOC/SPOC中观看视频、参与互动的数据每天一次同步到慕课堂后台(课程相关数据隔天更新),学生在MOOC/SPOC 中参加测验/作业的成绩需老师确认后才会同步

  • 我必须做一个程序,收集作业的总数和学生对每个作业的评分。程序返回每个学生的作业分数。这是我现在的输出窗口: 班上有多少学生?2用户输入=assignmentLimit 学生1:74用户输入 学生2:85用户输入 学生1分 但是在学生1分部分,我希望它显示41.0和74.0。对于学生2分,我想显示52.0和85.0。我该怎么做?这是收集和显示标记的部分:

  • 我有 3 张桌子 学生(id,姓名) 主题(id,name) 学生主题(学生标识,主题标识,标记) 我想选择通过所有科目的学生姓名(有分数的学生)。 我试过这个: