• 締切済み

SQLアドバイスください。

erupi1973の回答

  • erupi1973
  • ベストアンサー率75% (27/36)
回答No.1

参考URLのSQLをちょっと書き換えてみました。 DBはOracleですよね? delete from table_a where ID in ( (select ID from table_a) minus (select min(ID) from table_a group by name) ) こんな感じでいけるのではないかと思います。

参考URL:
http://ml.postgresql.jp/pipermail/pgsql-jp/2003-March/012957.html

関連するQ&A

  • SQLで取得可能でしょうか

    SQLで取得可能でしょうか 今2つのテーブルがあるとします。 ---------------------- テーブル1  KEY    項目   1   テスト1   2   テスト2   3   テスト3 ----------------------- ---------------------- テーブル2   CD  名称    1   か   1   き   2   さ   2   し   2   す   3   た ----------------------- テーブル1のKEYはキーで重複しません。 テーブル2のCDは重複しますが、内容はテーブル1のKEYとリンクします。 今、テーブル1のKEY1件につき、データを1件取得したいのですが、 テーブル2の名称も取得したいです。 データは1件しか取得しない為、名称は、特定文字(例として/)で 区切って取得したいです。 期待したい結果 ----------------------  KEY  名称   1  か/き   2  さ/し/す   3  た ---------------------- このような取得は可能でしょうか? 尚、SQLの発行は1回のみで行いたいです。 よろしくお願いします。

  • SQL文にて

    調べたり聞いたりしたのですが なかなか解らなかったので、質問させてください。 AテーブルとBテーブルとがあり、Aテーブルのみにしか 存在しないデータを一発で取得することはできるのでしょうか? Aテーブルのデータ数(100件) Bテーブルのデータ数(80件) Aのキー項目とBのキー項目とは同一です。 処理をしたい事はAとBとでAにしか存在しないデータを ループせずに一回のSQLで行えたらと思っています。

  • SQL内でのデータコピー

    おはようございます! 今私が扱っているSQLデータであるコラムデータを違うコラムに移行したいのですがその方法が分かりません。 このSQLデータは「顧客」テーブルと言うものがあり、 「顧客」テーブルの「コメント」と言うコラム内データを「ノート」というコラムに移動したいです。 「顧客ID」があるので 「顧客ID」が同じという条件で 「顧客」テーブルの「コメント」内データを、「顧客」テーブルの「ノート」内に移動する 為にはどう言った構文を作成すればよろしいのでしょうか? かなり切羽詰まっているので宜しくお願いします!

  • 複数テーブルでの件数検索について

    Oracle上の2つのテーブルからの条件でマッチする件数をSQLで作成しています。 内容としては、テーブルAの区分=1 かつ テーブルBの種別がスペースの件数です。 テーブルAの該当するデータは10件中3件、テーブルBの該当するデータは50件中15件で、本来両方がマッチするのは2件です。 SELECT COUNT(*) FROM テーブルA,テーブルB WHERE テーブルA.区分 = '1' AND テーブルB.種別 = ' ' ; 上記のSQL文で件数をカウントしたのですが、どうも結果では30件とカウントされてしまいます。 なんとか2件として結果を出したく、参考資料を調べているところなのですが、今のところ参考になる文献が見つからず悩んでます。もし簡単にカウントできるSQLがあったり、分かる方がいれば手助けして頂きたいと思い、今回投稿しますのでご教授賜りたく思います。よろしくお願いします。

  • SQLの書き方

    わからないので質問をさせて頂きます。 テーブルAに、money、rank、name、IDと言うカラムがあります。 テーブルBに、IDとpointと言うカラム名があります。 テーブルAのIDを指定し、テーブルBに同じIDが存在する場合 テーブルAとBの値を取得するSQLを書いています。 Select テーブルA.money,テーブルA.rank テーブルA.name,テーブルA.ID,テーブルB.point FROM テーブルA,テーブルB Where テーブルA.ID = '5'; このように書くとmoney,rank,name、IDは重複して表示がされ pointに関してはすべてのpointが表示されてしまいます…。 重複するのでdistinctを使ったのですが うまくいかず…。 SQL初心者ですが、よろしければ教えてください。

    • ベストアンサー
    • MySQL
  • SQL の主キーについて

    次のページで・・・ https://rfs.jp/sb/sql/s03/03_3.html "各テーブル間のリレーション"というところに図がありますが、商品テーブル、顧客テーブルの商品ID、顧客IDはそれぞれ主キーである必要はあるのでしょうか? ユニークであることは前提ですが。 Access, SQL Serverで考えています。

  • ACCESSで集計のSQLの質問です

    各IDごとのデータ件数を表示するSQLで質問です。テーブルは次のようになります。   連番  ID  名前    1  10  あああ    2  10  いいい    3  20  ううう    4  30  えええ    5  40  おおお    6  40  かかか となってるときに、IDごとのデータ件数をだしたいのですが。宜しくお願いいたします。

  • ある条件でのSQLの取得方法について

    以下の条件でのSQLのデータの取得方法が分かりません。 2つのテーブルがあるとします。 ・テーブルA キー   項目1 10     X 20     Y ・テーブルB キー  項目2  項目3 10     5    C 10     6    D 12     6    E ここで取得する条件として ■テーブルAにあるのは、必ず取得します。 ■テーブルAのキーとテーブルBのキーは繋がり、繋がったテーブルBの情報は  別レコードとして取得します。 ■テーブルAのキー1つに対して、テーブルBのキーは無いかも知れないし、  複数件あるかも知れません。  無い場合はテーブルAの情報のみを出力し、複数件ある場合はその全てを出力します。 ■テーブルBの項目2が同じ値のデータがある場合、テーブルBを出力したレコードと  同じレコードに、項目2が同じデータの情報を出力します。  項目2が同じデータが無い場合はこの情報は出力しません。  項目2が同じ値のデータは最大2件しかありません。 上記の例の場合に出力したい結果 ・出力テーブルC キー  フラグ   項目1  項目2  項目3   項目2が同じキー  項目2が同じ値 10  テーブルA   X 10  テーブルB         5    C 10  テーブルB         6    D        12            E 20  テーブルA   Y (テーブルC のフラグとは、テーブルAの情報かテーブルBの情報かを示します) これを出来ればSQL、出来なければPL/SQLで取得したいのですが どちらの場合でも取得の方法に悩んでいます。 どのような方法で取得できるのでしょうか?

  • SQLの書き方

    はじめまして SQL Serverを使用していますが、下記のSQLの書き方がわかりません。 申し訳けありませんが、わかる方がいらっしゃいましたら、どなたか教えて下さい。 ◆質問 テーブル1とテーブル2の下記のKEYで結合させて、取り出した結果でテーブル3を更新したいです。 テーブル2はデータが複数件一致してしまうため、無条件に先頭の1レコードだけを取り出したいです。 取得できたテーブル2のid_1とid_2とid_3をテーブル3に書き出したいです。 ○KEY テーブル1.test = テーブル2.test and テーブル1.test1 = テーブル2.test1 テーブル1.id_2 = テーブル3.id_1 and テーブル1.id_3 = テーブル3.id_2 ○テーブル1 id_1   id_2   id_3   test   test1 bbb   000001   001   000001  100 bbb   000002   001   000002  100 ○テーブル2 id_1   id_2   id_3   test   test1 aaa    1    99    000001   100 ← このレコードを取り出したい aaa    2    99    000001   100 aaa    3    99    000003   100 aaa    4    99    000004   110 ○テーブル3 id_1   id_2   id_3 000001  001  aaa-1-99   ←id_3にテーブル2で取得できたid1 + id2 + id3を書き出したい 000002  001 夜遅くにすみませんがお願いします。

  • 1つのSQLで2段階の抽出を行いたい

    恐らくそれほど複雑なSQLではないと思いますが、中々SQLが作成できず困っています。 回答いただければ嬉しいです。 以下のテーブルがあったと仮定します。 テーブル名:  売上げ明細 カラム:  ・商品ID … 売上げ明細なので一意ではありません  ・単価 … 同じ商品IDでも、レコードによって単価は異なります  ・数量 … 1~5の整数のみとします 実際のデータは以下の通りです。 商品ID,単価,数量 1001,50,2 1001,60,5 1002,90,3 1003,60,5 1003,80,4 1003,90,1 1004,60,3 上記データを以下の通り抽出するには、どのようなSQLを組めばいいでしょうか? 1.まず各商品IDの中から単価が最大のレコードだけを取り出す 商品ID,単価,数量 1001,60,5 1002,90,3 1003,90,1 1004,60,3 2.次に数量でgroup by して、件数をカウントする 数量,件数 1,1 3,2 5,1 1つのSQL文で2の結果が得られれば、途中の抽出条件は特に問いません。 ちなみにMySQL5を使っています。 よろしくお願いします。

    • ベストアンサー
    • MySQL