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

and で集約関数MIN()を使用する必要GROUP BYidありclassます。

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 に答える