0

元のテーブル

+-- Col 1 --+-- Col 2 --+
+--   1   --+--   a   --+
+--   1   --+--   b   --+
+--   1   --+--   c   --+
+--   2   --+--   d   --+
+--   3   --+--   e   --+
+--   3   --+--   f   --+
+-----------------------+

結果 :

+-- Col 1 --+-- Col 2 --+
+--   1   --+--   a   --+
+--   2   --+--   d   --+
+--   3   --+--   e   --+
+-----------------------+

テーブルを区別する方法はありますか?

4

4 に答える 4

1

"DISTINCT" は、結果セットのすべての列に適用されます。

「GROUP BY」は必要な結果を提供しますが、「col2」が結果セットで実際の意味を持っているかどうかを考える必要があります。

 SELECT col1, min(col2) as col2
      FROM T
     GROUP BY col1
于 2012-05-16T04:28:11.293 に答える
0

テーブル名が TEST の SQL Server を使用する場合、以下のように T-SQL で CROSS APPLY を使用できます。

SELECT DISTINCT Col1, TEST2.Col2 FROM TEST
CROSS APPLY (SELECT TOP 1 Col2 FROM TEST TEST2
        WHERE TEST2.Col1 = TEST.Col1) TEST2
于 2012-05-16T04:37:44.237 に答える
0
SELECT t.Col1, t.Col2
FROM T t
WHERE NOT EXISTS(SELECT *
                 FROM T s
                 WHERE t.Col1 = s.Col1 AND t.Col2 > s.Col1)
于 2012-05-16T04:21:18.957 に答える
0

col1 の同じ値に対して col2 に同じ値がないため、両方の列を選択している場合、DISTINCT によって結果を生成できませんでした。

于 2012-05-16T04:21:49.370 に答える