1

对于每个 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
4

2 回答 2

3

MIN()您应该使用带有andGROUP BY的聚合函数:idclass

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

请参阅带有演示的 SQL Fiddle

| ID | MinRank | CLASS |
--------------------------
|  A |       1 |     x |
|  A |       3 |     y |
|  B |       1 |     x |
|  B |       3 |     y |
于 2012-12-05T21:35:56.150 回答
1

使用MIN作为聚合函数的简单GROUP BY就可以了。

SELECT `ID`, 
       Min(`Rank`) AS `Rank`, 
       `Class` 
FROM   tbl1 
GROUP  BY `ID`, 
          `Class` 
于 2012-12-05T21:36:09.243 回答