返回分组变量的最低排名

时间:2012-12-05 21:32:57

标签: 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   1       x
A   3       y
B   1       x
B   3       y

2 个答案:

答案 0 :(得分:3)

您应该使用MIN() GROUP BY idclass的汇总函数select id, min(rank) as MinRank, class from yourtable group by id, class

| ID | MinRank | CLASS |
--------------------------
|  A |       1 |     x |
|  A |       3 |     y |
|  B |       1 |     x |
|  B |       3 |     y |

请参阅SQL Fiddle with Demo

{{1}}

答案 1 :(得分:1)

使用GROUP BY作为聚合函数的简单MIN可以执行此操作。

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