0

1 つの列に重複する値が含まれるテーブルがあります。その列の個別の値ごとに、最小のインデックスを持つ行のみを選択する必要があります。私は、distinct() min() と group by の多くの組み合わせを試しましたが、これを理解できませんでした。このクエリは、SQL Server 2008 で実行されます。

color  |  index  |  user_id | organization_code
blue      44         xxx            yyy
blue      66         xxx            yyy
red       12         aaa            bbb
white     55         ccc            ddd
white     68         xxx            yyy

クエリは、1 行目、3 行目、4 行目を返します。

blue      44         xxx            yyy
red       12         aaa            bbb
white     55         ccc            ddd
4

1 に答える 1

2

index列名などのキーワードは使用しないでください。問題にウィンドウ関数を使用します。以下の例を参照してください

 select color, [index], [USER_ID], organization_code from (
select *, ROW_NUMBER() over (partition by color order by [index]) as ranker from table
) Z where ranker = 1
于 2013-06-26T14:46:38.657 に答える