好吧,我可能会因为第二次问同样的问题而被禁止,但我在这里是一个令人难以置信的新手,我被告知我没有足够的声誉来评论原始问题。
我同意 OP (Matt Fenwick) 在如何创建用户定义的聚合函数中回答 5 的评论。因为它给了一条鱼一天,但真正的问题是学习如何钓鱼。
我需要一个 GROUP BY 聚合函数,例如 MIN 函数,但是在调用 SMALL(t.value, 2) 时它返回第二小的数据元素,在调用 SMALL(t.value, 3) 时它返回第三个最小的数据元素,等等。(这实际上适用于 LibreOffice Calc 的 SMALL 函数,顺便说一句。)
我提出这个问题的特殊原因的问题是我想将大学课程的评分电子表格转换为 MySQL 数据库,并且我需要删除两个最低的出勤分数、两个最低的作业分数和两个最低的测验每个学生的分数,以计算他们调整后的出勤率、调整后的家庭作业平均值和调整后的测验平均值,以及对数据的其他调整。
tblQuizzes 看起来像
mysql> select * from tblQuizzes LIMIT 12;
+------------+---------+-----------+
| StudentKey | QuizKey | QuizGrade |
+------------+---------+-----------+
| 1 | 1 | 0.123 |
| 2 | 1 | 0.456 |
| 3 | 1 | 0.789 |
| 4 | 1 | 0.890 |
| 5 …Run Code Online (Sandbox Code Playgroud)