SQL(MS)で、ある列内において、重複している商品のみ書き出す方法はありますか? 例:列a,a,b,c,c,c,d,e の場合、a,cを抜き出す

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2003/12/11 19:12:27
  • 終了:--

回答(4件)

id:mame777 No.1

mame777回答回数2ベストアンサー獲得回数02003/12/11 19:34:16

ポイント30pt

select a from (

(URLはダミーです)

select a,count(*) cnt from TBL_A group by a) X where X.cnt > 1

;

上記でいかがでしょう。

TBL_Aテーブルに列aがある前提です。

id:TONTON3 No.2

TONTON3回答回数212ベストアンサー獲得回数42003/12/11 19:48:40

ポイント20pt

http://tonton38.hp.infoseek.co.jp/

聖へべれけ女学院

こんなSQLはどうでしょうか?SQL-Server

SELECT 商品ID

FROM 商品マスタ

GROUP BY 商品ID HAVING COUNT(商品ID)<>1

商品マスタというテーブルにある重複した商品IDを抽出します。

id:keiforce No.3

keiforce回答回数10ベストアンサー獲得回数02003/12/11 20:25:29

ポイント10pt

http://www.hatena.ne.jp/1071137547

SQL(MS)で、ある列内において、重複している商品のみ書き出す方法はありますか? 例:列a,a,b,c,c,c,d,e の場合、a,cを抜き出す .. - 人力検索はてな

上記URLはダミーです

From句に同じテーブルの列をカウントさせてGroup by で列を設定すればいいんじゃないでしょうか?

Select A.あ, A.Cnt From (Select Count(あ) Cnt From Table A GroupBy あ) Where A.Cnt>2

こんな感じでちなみにOracleしかやってないのでMSではできないのかも?

id:sasada No.4

sasada回答回数1482ベストアンサー獲得回数1332003/12/12 11:03:47

ポイント10pt

http://www.hatena.ne.jp/list

人力検索はてな - 質問一覧

 URLはダミーです。

 この場合、重複行の削除というより、グループ化の方が適切ですね。

 したがって、group byで、重複をチェックしたい列を指定します。

 グループ化した中で重複している件数をチェックするので、count(重複チェック項目)という集計関数を使います。

 COUNTはグループ化された行の件数を返します。(簡単に言えば)

 つまり、COUNT(重複チェック項目)が1なら重複なし、1より大きければ重複ありです。

 グループ化のあとに集計結果で条件設定するときは HAVINGを使用します。

 したがって、

 SELECT * FROM 問題のテーブル /* a,a,b,c,c,c,d,eが入っている */

 GROUP BY 重複チェック項目

 HAVING COUNT(重複チェック項目) > 1

で、お尋ねの処理が出来ると思います。

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません