当前位置:  开发笔记 > 编程语言 > 正文

使用单个和快速SQL查询获取数据

如何解决《使用单个和快速SQL查询获取数据》经验,为你挑选了1个好方法。

我有以下数据:

ExamEntry   Student_ID     Grade
  11           1             80
  12           2             70
  13           3             20
  14           3             68
  15           4             75

我想找到所有通过考试的学生.在这种情况下,如果一个学生参加的考试很少,我需要找到最后的结果.

所以,在这种情况下,我会让所有学生都通过.

我可以通过一个快速查询找到它吗?我是这样做的:

    通过Student_ID从数据组中选择max(ExamEntry)来查找条目列表

    查找结果:

从()中的ExamEntry数据中选择ExamEntry.

但这非常慢 - 我得到大约1000个条目,这个2步过程需要10秒.

有没有更好的办法?

谢谢.



1> Jacco..:

如果你的查询在你的表中有1000条记录非常慢,那就有问题了.对于现代数据库系统,包含1000个条目的表被认为非常小.
最有可能的是,你没有为你的桌子提供(主要)钥匙?

假设如果学生至少在成绩之上超过所需的最低要求,则适当的查询将是:

SELECT 
  Student_ID
, MAX(Grade) AS maxGrade
FROM table_name
GROUP BY Student_ID
HAVING maxGrade > MINIMUM_GRADE_NEEDED

如果你真的需要最新成绩高于最低成绩:

SELECT 
  Student_ID
, Grade
FROM table_name
WHERE ExamEntry IN ( 
    SELECT 
      MAX(ExamEntry) 
    FROM table_name 
    GROUP BY Student_ID
)
HAVING Grade > MINIMUM_GRADE_NEEDED

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有