dポイントプレゼントキャンペーン実施中!

SQL初心者です。
3項目が一致した重複データを省きたい。
テーブルAには 誕生年 名前 年齢 が 入っていて
誕生年、名前、年齢が同じレコードははぶきたいのですが、
どのように書いたらいいでしょうか。

Windos XP
言語:vbs
DB Micosoft Sql server 2008

A 回答 (2件)

誕生年、名前、年齢が同一で住所がことなる場合はどのレコードを取得するのでしょうか?


たとえば、

誕生年|名前|年齢|住所|・・・
S34 |山田|24|大阪
S34 |山田|24|大阪
S34 |山田|24|大阪
S34 |山田|24|東京

というデータの場合は大阪と東京のどちらを取得するかの条件は決まっていますか?
そんなデータは存在しないというならば、row_number関数を使って
select 誕生年,名前,年齢,住所
from (
 select 誕生年,名前,年齢,住所
     ,row_number() over(partition by 誕生年,名前,年齢 order by 住所) row_num
 from テーブルA
)
where row_num = 1;
とかでもいいかと思います。

参考URL:http://msdn.microsoft.com/ja-jp/library/ms186734 …
    • good
    • 0
この回答へのお礼

ありがとうございました。
いろいろ試してみます。

お礼日時:2010/09/16 10:59

画像が見られませんが・・



重複を除外するにはdistinctすればいいです。
select distinct 誕生年,名前,年齢
from テーブルA

とすると誕生年、名前、年齢が同一のレコードが複数件あっても1件だけ取得できます。

参考URL:http://msdn.microsoft.com/ja-jp/library/ms187831 …

この回答への補足

説明不足で申しわけありません。
画像はUPしたのですが、システムエラーでなんどやっても上手くいきませんでした。

取り出したい項目と重複除外の項目が一致していればいいのですが
重複チェックは誕生年,名前,年齢で取り出したい値が誕生年,名前,年齢,住所の場合
エラーになるのでdistinct を使わない方法ないでしょうか。

テーブルA

誕生年|名前|年齢|住所|・・・
S34 |山田|24|大阪
S34 |山田|24|大阪
S34 |山田|24|大阪
S32 |山下|21|大阪

補足日時:2010/09/16 09:04
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!