【发布时间】:2018-05-06 09:10:10
【问题描述】:
名为“StudentResults”的数据库表存储学生科目测试的结果。这些测试是根据性能分级的。所以有数学分数、法语分数、英语分数、科学分数和农业分数的等级。我想创建一个查询,该查询将检查并总结整个五个不同结果中的两个最少结果。
例如。约翰数学 = 40 法语 = 50 英语 = 60 科学 =30 农业 = 70。在五门科目考试中,最少的两个成绩分别是 30 和 40。我如何编写查询来总结它们。下表示例:
|姓名 |数学 |法语 |英语 |科学 |农业 | 两个_最少 |
-------------------------------------------------- --------------------------------------
|詹姆斯|| 30.0 | 50.0 | 70.0 | 10.0 | 70.0 | 40.0 |
|乔希| 10.0 | 30.0 | 40.0 | 10.0 | 70.0 | 20.0 |
|珍妮特| 20.0 | 60.0 | 70.0 | 80.0 | 90.0 | 80.0 |
詹姆斯最少两个是数学 = 30 科学 = 10。Two_Least = 40
乔希最少两个是数学 = 10 科学 = 10。Two_Leats = 20
珍妮特两个最少是数学 = 20 法语 = 60。Two_Least = 80
请我如何编写一个sql查询来解决这个问题。非常感谢大家。
【问题讨论】:
-
您使用的是哪个 dbms?
-
sqlite 请@jarlh
-
我会考虑规范化您的数据库。在没有一堆 CASE 语句的情况下,在 SQLite 中没有真正的好方法
-
我计划通过网络文件夹共享文件,以便许多计算机可以访问它。在套接字和服务器套接字@kbball 方面不太好。这就是为什么我为这个老板选择了 sqlite。我会非常感谢你的回答,老板。
-
SQLite 不是问题...。理想情况下,您应该将姓名、主题、分数作为您的行结构 - 因此您在下面看到的所有联合