1

次のデータを含むテーブルがあります。

TableColumnsId  AssumedDataType     Ranking
43264           System_String       1
43265           System_Int32        2
43265           System_Double       10
43266           System_Double       10
43266           System_Int32        2
43267           System_Int32        2
43267           System_Double       10
43268           System_Double       9
43268           System_Int32        8
43268           System_String       9
43269           System_String       9
43269           System_Int32        7
43269           System_Double       10
43270           System_String       5
43271           System_String       1
43272           System_String       8
43272           System_Double       4

TableColumnsId ごとに 1 つの列のみを返したいのですが、集計の AssumedDataType はランクの低いものにする必要があります。

したがって、上記のデータは次のようになります。

TableColumnsId  AssumedDataType     Ranking
43264           System_String       1
43265           System_Int32        2
43266           System_Int32        2
43267           System_Int32        2
43268           System_Int32        8
43269           System_Int32        7
43270           System_String       5
43271           System_String       1
43272           System_Double       4

group by で min 集計関数を使用すると、最初の AssumedDataType がアルファベット順に返されますが、これは機能しません。

4

3 に答える 3

0

これを試して:

SELECT TableColumnsId, AssumedDataType, Ranking
FROM T t1
WHERE Ranking =
    (SELECT MIN(Ranking)
    FROM T t2
    WHERE t1.TableColumnsId = t2.TableColumnsId);
于 2013-09-10T13:57:41.907 に答える