gpt4 book ai didi

mysql - 获取每组的前K个选项

转载 作者:行者123 更新时间:2023-11-29 10:45:38 26 4
gpt4 key购买 nike

在我使用 MySQL 的过程中,我多次遇到寻找每组最佳(最大/最小)行的任务。

例如表中:

Grades(Student_ID, Course_ID, Grade)

要查找每个学生的顶级类(class),我们可以使用相关子查询:

SELECT Student_ID, Course_ID
FROM Grades g1
WHERE Grade in (SELECT MAX(Grade)
FROM Grades g2
WHERE g1.Student_ID = g2.Student_ID)

但是 - 我怎样才能对 TOP K 类(class)做同样的事情?

I found this answer from related question ,但它们使用的是变量,这不是经典 SQL 的一部分。还有其他解决方案吗?或者在这种情况下我必须使用变量?

最佳答案

使用 MySQL @variables 的排名技术是解决缺少 RANK()ROWNUM() 窗口函数的方法来自该数据库。

最近发布的MySQL MariaDB 10.2, has RANK() and related functions的 fork 。 Oracle 的 MySQL,还没有。

您并不是唯一一个希望 MySQL 不需要 @variables 来执行此类查询的人。

关于mysql - 获取每组的前K个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44629723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com