• ベストアンサー

重複レコードの削除

Kuppycatの回答

  • ベストアンサー
  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.2

テンポラリーテーブルを作る方法でできませんか? ストアドプロシージャ内でTEST2に該当するテーブルを造ります。 Create Table #TEST2 (以下略 というように頭に「#」をつけてください。 以降このテンポラリーテーブルを使えば、同じ手順でできると思います。

noname#74279
質問者

お礼

教えて頂いた方法で解決できました。ありがとうございました。

関連するQ&A

  • すべてのテーブルのすべてのレコードを削除する方法

    データベースを扱うプログラムに対してユニットテストを行いたいと思っています。 それぞれのテストが終了するごとにすべてのテーブル内のすべてのレコードを削除したいのですが、 delete from table_a; delete from table_b; delete from table_c; ... のように書くと、外部キー制約に引っかかってしまい削除できないことがあります。 短いSQL文で複数のテーブル内のレコードをすべて削除する方法はないのでしょうか? よろしくお願いします。 ちなみに、私が現在使っているDBMSはPostgreSQL 8.1です。

  • 重複削除の高速化

    ■フィールド数は1つ。 ■レコード数は400万件程。 毎日30万件ほど追加して重複削除を行っています。 現在下記のSQLで処理していますが、相当な時間がかかります。 高速化する方法、または高速に重複削除できるSQLがありましたら ご教授お願いします。 ----------------------------------------------------------- CREATE TABLE temp_hoge as SELECT distinct * FROM `hoge` DROP TABLE hoge; ALTER TABLE temp_hoge RENAME TO hoge; -----------------------------------------------------------

    • ベストアンサー
    • MySQL
  • ACCESS:重複の削除(一意フィールドなし)

    下のようなSQLで重複したレコードを削除することができることがわかりました。 テーブル名:TEST DELETE * FROM TEST AS T1 WHERE ID <> (Select Min(ID) From TEST As T2 WHERE T2.受付日 = T1.受付日 And T2.シリアルNO = T1.シリアルNO); しかしIDのように一意のフィールドがないテーブルで重複を消し一意にする方法はありますか。 Distinctを応用するとできるのですが、削除クエリで一発する方法はありませんか。 お願いします。

  • 重複レコードを高速で取得するSQL

    Access(mdb)から約2万件レコードのあるテーブルがあるとします。 列数は20ほど。 その中から、3つの列において重複しているレコードを取得したいのですが、 高速に取得する方法はありますでしょうか? (VB.NETで、重複レコードをユーザーに示す処理を作成したいのです) 以下のSQLを試したところ、1分以上時間がかかってしまいました。 ----------------------------- SELECT * FROM テーブルA table1 WHERE EXISTS ( SELECT * FROM テーブルA table2 WHERE table1.列A = table2.列A   table1.列B = table2.列B   table1.列C = table2.列C GROUP BY table2.列A HAVING COUNT(table2.列A) > 1 ) ----------------------------- アドバイスをお願いします。

  • 2つのテーブルで重複する値のレコードを削除したい

    削除クエリ?重複クエリ?について教えてください。 テーブル1 フィールド"番号"には 1 2 3 テーブル2 フィールド"番号"には 3 4 5 があるとします。 「テーブル2と重複しているテーブル1のレコードを削除する」 (この場合「3」が重複しているのでテーブル1の3が入力されているレコードを削除) としたいのですがどいゆうSQL文を書けばいいのかわかりません。 ご教授よろしくお願いします。

  • 重複しているレコードを一気に削除する方法

    重複しているレコードを一気に削除する方法はありますか? 主キー  フィールド1 フィールド2 1     あ     い 2     あ     い のように、主キー以外は重複していえるのですが この場合、1か2を削除する方法はありますか? 一つのテーブルに主キー以外の値が重複しているレコードが多々あるので一気に削除したいです。

  • 重複レコードの一括削除

    重複データを抽出して、重複しているデータ分だけを一括で削除する事は可能でそうか。 SELECT hoge,count(*) AS count FROM テーブル GROUP BY hoge HAVING count>1 このように出せば重複データを出せたのですが、500件ほどレコードがあり、手作業では辛いです。 お力お貸しくださいませm(_ _)m よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 最大値を持つレコードを削除したい

    customerテーブル内のprice列の最大値を持つレコードを削除したいのですが、上手くいきません。よろしくお願いします。 DELETE FROM customer WHERE `price` = ( SELECT max( `price` ) FROM customer ) ; エラーメッセージは #1093 - You can't specify target table 'customer' for update in FROM clause と出ます。これは、同じテーブルを参照しているためのエラーのようです。 MySQLのバージョンは、5.0.48です。

    • ベストアンサー
    • MySQL
  • SQLiteで最も古いレコードのみの削除

    AndoroidでDBを使うのですが、考える動作のSQL文が作成できません。 テーブルTESTは以下のカラムを持ちます  ・ID - primary key not null  ・VALUE - not null テーブルTESTは最大で10件のレコードを保持します、11件目のレコードが発生したら 最も古い1件目のレコードを削除してから、11件目のデータを新しい10件目のデータとして テーブルに保存します。 そのために「最も古いレコード1件のみを削除する」というSQLを作成したいのですが、 考えたSQL文が正しくないと怒られてしまいます。 delete from TEST as A, (select * from TEST LIMIT 1)as B where A.ID=B.ID; この動作を1つのSQL文で行うのは不可能なのでしょうか?

  • 2つの項目が重複するレコードを抽出する方法はありますか?

    MySQL4.1で既存データに対し複合キーを新しく設定したいのですが、 ALTER TABLE `test` ADD PRIMARY KEY (`a`,`b`) としても重複データが存在する為、作成できませんでした。 10万件あるテーブルから重複するレコードを手動で削除したいのですが、aとbが重複しているレコードだけ抽出するSQL文はありますでしょうか?

    • ベストアンサー
    • MySQL