- - PR -
重複を取り除きたいです。(SQLServer2000)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-08 15:45
こんにちは。
初心者の質問ですみません。 特定の列で重複している値がある場合に、最初の1行だけを取り出すようにしたいと思っています。 列1 列2 列3 1 AA A1 1 BB A2 2 CC A3 3 CC A4 3 DD A5 4 EE A6 列1で重複している場合は、最初の1行だけを取り出して、 列1 列2 列3 1 AA A1 2 CC A3 3 CC A4 4 EE A6 のように取り出したいのです。 列1の値を取り出すだけでしたら、distinctやgroup byでいいのでしょうが、 行単位で取り出そうと思うと、わからず、困っています。 ご存知の方がいましたら、どうかご教授下さい。 よろしくお願い致します。 [ メッセージ編集済み 編集者: あやこ 編集日時 2006-02-08 15:47 ] | ||||
|
投稿日時: 2006-02-08 16:19
??? DISTINCT キーワードを列 1 に指定して、GROUP BY ではなく ORDER BY を使うのでは? 全フィールドに DISTINCT を付ける必要はないでしょう? もしかして、集計がてらやろうとしている? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-02-08 16:57
こんにちは
たぶんSQLでは出来ないんじゃないですかね? SQLは集合を扱う言語(?)ですから。 やるとしたら、fetchしながら、前のキーと同じだったら飛ばす処理を 入れて処理すれば簡単に出来ると思います。
な感じじゃないですかね? 仮想言語でアルゴリズムだけ書いてみました。 [ メッセージ編集済み 編集者: 未記入 編集日時 2006-02-08 16:59 ] | ||||
|
投稿日時: 2006-02-08 17:23
表示列が、列1と列2しか無いならば、乱暴な方法ですが
SELECT 列名1, MIN(列名2) FROM 表名 GROUP BY 列名1; でも取得できますが・・・ 副問合せが可能なRDBMSならば、上記との組み合わせで出せるかも!? | ||||
|
投稿日時: 2006-02-08 17:27
こんにちは。
他にユニークな値の列が存在し、 最初の1行というのがそのユニーク列の値が最小のレコードという事で良い。 とか他の条件(状況)がもう少し判ればできるかも。 ちなみに上の条件であれば
こんなので一応できると思いますが。。。 |
1