我有下表
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
使用< 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);
您必须使用GROUP BY子句,如下所示。这是一个帮助你理解GROUP BY和HAVING子句的经典问题。GROUPBY实现了聚合,而HAVING允许您对其施加条件。
SELECT name
FROM student
GROUP BY name
HAVING MIN(mark) >= 80
一个简单的聚合。
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) 学生主题(学生标识,主题标识,标记) 我想选择通过所有科目的学生姓名(有分数的学生)。 我试过这个: