• ベストアンサー

SQL文を教えてください

A B C --------- 11 22 33 44 55 33 上記のように、同じ値を持つレコードが2件以上あるC列の値を取得するにはどのようなSQL文にすればよいでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

おそらく、今問題にしているのはC列であって、A列、B列は関係ありませんよね?(推測ですが) A列、B列は関係ないと仮定して、C列だけ書きますが、質問者さんが知りたいのは、例えば C -- 33 33 35 40 40 40 50 51 60 のようなデータがあった場合、重複しているデータだけを取得して 33 40 となる結果を得たい、ということでしょうか? (読み方によっては、そういうふうにも読めたので。) もし、そういうことであれば、 SELECT DISTINCT T1.C FROM T1 WHERE ( T1.C IN (SELECT C FROM T1 GROUP BY C HAVING COUNT(*)>1 )) で得られます。 このSQLだと、ほとんどのDBで実行できると思うのですが、念のため、DBは何なのか( Oracle、SQL-Server、Access など)と、そのバージョンも書いておいた方がいいと思いますよ。

wo-007
質問者

お礼

大変ありがとうございました。

その他の回答 (1)

  • Tibian
  • ベストアンサー率15% (30/188)
回答No.1

SELECT テーブル名.C FROM テーブル でいいと思います。 逆に複数あるのだけれど一つだけ表示でいいというのなら DISTINCTをSELECTの後ろにつけてあげてください。

wo-007
質問者

お礼

参考になりました。

関連するQ&A

  • SQL文をご教授願います

    SQL文をご教授願います。 以下のようなテーブルを仮定しています。 A   B    C   D ---------------------- 10  100  1203 A 10  200  1204 B <--- 取得したい 11  300  1203 C 11  300  1204 D <--- 12  400  1206 D 12  500  1207 E <--- ・ ・ A列をー意にして、A列・D列のデータを取得したい 条件 Bの大きい方を取得する Bの値が同じ場合はCの大きい方を取得する。 (A列には同じデータが2以上あるとします) (C列には同じデータはありません) 欲しい結果 A   D -------- 10 B 11 D 12 E

  • SQL(SELECT文)を教えてください

    SQL Serverを勉強中です。 以下のようなテーブルに、同一の日付に複数の名称・値のセットが存在します。 Date(日付)  Name(名称) Value(値) 20130101      a      10 20130101      b      20 20130101      c      30 20130202      a      5 20130202      b      10 20130202      c      15 このデータを、SQLのSELECT文で取得し、以下のような表を作りたいと考えています。 a b c 20130101 10 20 30 20130202 5 10 15 行が日付、列が名称になっています。 このように取得できるSQL文を教えてください。よろしくお願いします。

  • SQL文 教えて下さい。

    以下のようなデータがあります。 ・列Aにはが1~300までの値が格納。 ・列BにはA~Zまでの値が格納。 列B、A~Zの値に対して、 列Aの値は列1~300の値を複数持つことができます。 列A 列B ----------- 1 A 2 A 3 A 6 A 1 B 3 B  : このとき、列Aの値のうち、1~10までの値を全て持つ列Bの値を抜き出すにはどういったSQL文を記述すればよいでしょうか。 よろしくお願いします。

  • SQL文を教えてください

    SQLを教えてください。 以下のようなテーブルを仮定しています。 A  B  C -------------- 10 12 1201 11 12 1203 11 13 1205 12 12 1206 A列をー意にして、A列とB列の全データを取得 したいのですが、2・3行目のような場合は C列の大きい方を取得したいのですが・・・ 欲しい結果 A  B C -------------- 10 12 1201 11 13 1205 <--- 12 12 1206

  • SQL文の構築について教えてください。

    SQL文の構築について教えてください。 こんばんは。Oracle9iのデータベース検索で、どうしてもSQLが思い浮かばないため、質問させていただきます。 ■Table ID    NUM   SIGN 100   1    A 100   2    A 101   1    A 102   1    B 103   1    B 104   1    C 首キーはID、NUMです。 上記のようなテーブルで、 IDが同一かつNUMが最大のもので、 SIGNが同一のレコードで、2件以外のレコードを抽出したいです。 (例表でいうと、ID104のレコードのみが抽出されるようにしたい) すこし急ぎなんですが、SQLが得意でお時間がある方、力を貸していただけないでしょうか。 よろしくお願い致します。

  • SQL文の書き方

    SQLを勉強しています。 レコードの中で指定フィールドの文字列が、指定文字から始まるレコードを取り出したいのですがSQL文の書き方がわかりません。 例) 1, AAA 2, BBB 3, CCC 4, ABC 上記の4つのレコードから"A"から始まるレコードを取り出したい。 結果は[1, AAA]と[4, ABC]が欲しいのです。

  • SQL文での条件分岐

    列a,b,cから構成されるテーブルAが存在します。 これをテーブルB(列d,e)に以下の流れでコピーしたいのです。 ・a列の値 → d列 にコピー ・aの値が"1"ならば、b列の値 → e列 にコピー / "1"以外は、c列の値 → e列 にコピー としたいのですが、これをSQL文だけで書けますか? ストアドを書くのであれば、どのような感じで書けばいいのでしょうか? ヒントだけでも結構ですので、分かる方はお教えいただけますか?

  • SQL文 複数条件の場合の書き方

    初めて質問します。 下記のようなデータが存在します。 テーブルA NO DATE GYO 1 2010/12/01 1 1 2010/12/01 2 2 2010/12/01 1 2 2010/12/01 2 2 2010/12/01 3 3 2010/12/02 1 <= 4 2010/12/03 1 4 2010/12/03 2 上記データにて、<=の行の値を取得し変数へ代入したとします。 変数.NO =3 変数.日付 =2010/12/02 変数.GYO =1 上記、変数を元に1件前のレコードを抽出したいのですが SQL文でのいい方法がわかりません。 取得したいレコード 1 2010/12/01 1 1 2010/12/01 2 2 2010/12/01 1 2 2010/12/01 2 2 2010/12/01 3 どうかお願いいたします。

  • こんなSQL文

    Oracle8.1.7を使用しております。 以下のようなテーブルに対し、1行目と2行目を削除するSQL文を書きたいのですが、思いつきません。どなたか、アドバイスいただけないでしょうか? 表名:A   B | C ――――――――   2 | 10   2 | 1   1 | 10   1 | 1   1 | 11   1 | 2   1 | 1   3 | 10   2 | 3 変数として、P1=1とP2=2があります。(これは、SQL文の中に直接書くものとします。) ここで、SELECT B,C FROM A WHERE B=1;とSELECT B,C FROM A WHERE B=2;を実行すると、次のようになります。   B | C     B | C ――――――――― ―――――――――   1 | 10    2 | 10   1 | 1     2 | 1   1 | 11    2 | 3   1 | 2   1 | 1 ここで、それぞれの表を見ると、Cの値が一致している部分があります。この一致していて、Bが2の行を削除したいのですが、SQL1文では無理でしょうか? 最近、SQLには慣れてきたつもりだったのですが、こんなとこでつまずくとは・・・どうぞよろしくお願いします。

  • sql文について教えて下さい

    お世話になっております select文を教えて下さい A   B 123  0 123  0 123  1 123  1 124  0 124  1 124  2 125  0 125  1 125  1 Aの項目でグルーピングしBが0のデータが2件以上あるケースを選択したいのですが良く分かりません。 上記の場合は、A=123のケースだけを選択したいのですが どなたかご教示下さい。 A  B 123  0 123  0 という結果になるようにSQLを組み立てたいのですが よろしくお願いします。