Mysql 返回分组变量具有最低秩的ID

Mysql 返回分组变量具有最低秩的ID,mysql,Mysql,对于每个ID号,我需要按类值对ID号进行分组,当存在重复的类值时,使用最低秩……我尝试了几个连接,但没有成功。如果您能对所建议的任何代码进行非常简短的描述,我们将不胜感激。谢谢 表结构: ID Rank Class A 1 x A 2 x A 3 y A 4 y B 1 x B 2 x B 3 y B 4 y 预期结果: ID Rank Class A

对于每个ID号,我需要按类值对ID号进行分组,当存在重复的类值时,使用最低秩……我尝试了几个连接,但没有成功。如果您能对所建议的任何代码进行非常简短的描述,我们将不胜感激。谢谢

表结构:

ID  Rank    Class
A   1       x
A   2       x
A   3       y
A   4       y
B   1       x
B   2       x
B   3       y
B   4       y
预期结果:

ID  Rank    Class
A   1       x
A   3       y
B   1       x
B   3       y

您应该使用聚合函数
MIN()
,通过
id
class
进行分组:

select id, min(rank) as MinRank, class
from yourtable
group by id, class


您应该使用聚合函数
MIN()
,通过
id
class
进行分组:

select id, min(rank) as MinRank, class
from yourtable
group by id, class

使用聚合函数可以做到这一点

SELECT `ID`, 
       Min(`Rank`) AS `Rank`, 
       `Class` 
FROM   tbl1 
GROUP  BY `ID`, 
          `Class` 
使用聚合函数可以做到这一点

SELECT `ID`, 
       Min(`Rank`) AS `Rank`, 
       `Class` 
FROM   tbl1 
GROUP  BY `ID`, 
          `Class` 

你说的连接,那些是什么连接?你说的连接,那些是什么连接?嘿,感谢SQL演示链接!我觉得这很简单。我看到的其他查询示例似乎效率极低。@user996544很乐意提供帮助。是的,当发布到这些站点时,SQLFiddle是一个很好的工具sites@user996544假设该表在类列的右侧包含多个数据列。这个查询的问题是,它似乎没有为下面的数据列选择正确的记录。在我看来,我需要与原始表和您建议的查询进行联接,以获取额外的数据列?您可以将此查询用作子查询,然后联接回主表。嘿,感谢SQL演示链接!我觉得这很简单。我看到的其他查询示例似乎效率极低。@user996544很乐意提供帮助。是的,当发布到这些站点时,SQLFiddle是一个很好的工具sites@user996544假设该表在类列的右侧包含多个数据列。这个查询的问题是,它似乎没有为下面的数据列选择正确的记录。在我看来,我需要与原始表和您建议的查询进行联接,以获取额外的数据列?您可以将此查询用作子查询,然后联接回主表。