我在一个数据库表中有学生分数,比如
studid, studname, m1, m2, m3
和另一个数据库表中的学生个人信息,例如
studid, studname.
>
我想将两个表连接起来进行研究,螺柱名称((m1,m2,m3)必须合计为“总计”)。
学生的成绩必须显示m1、m2、m3
我还想只显示那些获得及格分数的学生的排名。
您可以将DENSE_RANK()
与这样的 CASE
结合使用。
SELECT studid, studname,(m1 + m2 + m3) as Totalmarks,
CASE WHEN (m1 >= 40 AND m2 >= 40 AND m3 >= 40) THEN 'PASS' ELSE 'FAIL' END,
CASE WHEN (m1 >= 40 AND m2 >= 40 AND m3 >= 40) THEN DENSE_RANK()OVER(ORDER BY (m1 + m2 + m3) DESC) ELSE NULL END std_rank
FROM studentmarks
WHERE m1 >= 40 AND m2 >= 40 AND m3 >= 40
编辑
如果您想显示所有学生,请删除WHERE
子句
试试这个,
select studID, Studname, m1, m2, m3, (m1+ m2+ m3) as 'Total',
case
when(m1<40 OR m2<40 OR m3<40)
then 'FAIL'
else 'PASS'
end as 'Result'
它应该工作。您可以连接2个表以产生所需的结果
select ID, Name, CASE WHEN total > 40 THEN 'Pass' ELSE 'fail' end from
(select m.studid as ID, m.studname as Name, sum(m1)+sum(m2)+sum(m3) as total from marks m NATURAL JOIN info i group by studid,studname )
问题内容: 我有下表 在这里,我有一个“学生”表,我想 从该学生表中获取从每个学科获得满分的学生的姓名,例如以下输出。 问题答案: 您可以使用ROW_NUMBER函数仅返回每个主题的“最佳”行: SQL小提琴 MS SQL Server 2008架构设置 : 查询1 : 结果 :
我有下表 在这里,我有一个“学生”表,我想 从学生表中获取每个科目的最大分数的学生的姓名,如以下输出。
问题内容: 如果我有5位成员的得分如下 c的ZRANK返回2,d的ZRANK返回3 对于相同的分数,是否可以获得相同的排名? 示例:ZRANK c = 2,d = 2,e = 3 如果是,那么如何在spring-data-redis中实现呢? 问题答案: 任何实际的解决方案都需要满足要求,这是原始问题中所缺少的。我的第一个答案假设数据集很小,但是这种方法无法扩展,因为至少在O(N)中完成了密集排序
本文向大家介绍LintCode-排序列表转换为二分查找树分析及实例,包括了LintCode-排序列表转换为二分查找树分析及实例的使用技巧和注意事项,需要的朋友参考一下 给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树 您在真实的面试中是否遇到过这个题? 分析:就是一个简单的递归,只是需要有些链表的操作而已 代码: 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
我想在每门课程中获得最高分,包括该课程的标题和参加该课程考试的学生姓名。我有这些表格,第一个学生 课程表 我还做了一张表格,让学生在课程考试中通过分数与课程联系起来 那我怎么能质疑呢。
问题内容: 我有一个十进制值34.3287332,如何获得.3287332之类的值的分数,请任何一位帮助(我可以将其转换为字符串并获取分数。但我不需要) 问题答案: 我只是获取整个值,然后得到其余的值: (获得剩余部分可能有更有效的方法,但这很简单。) 尽管您也可以在SQL中执行此操作,但是当您想使用LINQ to SQL或类似的方法获取值时,这种方法的效果可能会不太好- 我更喜欢将值操作放在.N