只今シスアド勉強中なのですが、SQLのところでつまずいてしまっています。副問い合わせと相関副問い合わせのそれぞれの意味はわかるのですが、SQL文を判断する時、副問い合わせと相関の副問い合わせというのを一目で判断するコツを教えていただけないでしょうか?
それとEXISTSを使った場合の副問合せと相関副問い合わせでも混乱しています。副問合せの場合はサブクエリーから先に条件をクリアしていくと思いますが、EXISTSの場合は真が偽しかデータを返しませんよね?
例えばEXISTS(SELECT * FROM 売上明細 WHERE 売上明細.商品CD=商品表.商品CD)とあった時、
1つでも商品CDが一致しているものがあれば真のみを返す。
でも、これが相関副問い合わせであれば親分に対して真の”データ”を返す?この場合の副問合せと相関副問い合わせの違いってSQL分のどの部分で判断するのでしょうか?わかりにくい説明でもうしわけありません。お分かりになる方どうぞアドバイス下さい。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

副問い合わせは別の文に含まれているSelect文ですよね。



相関副問い合わせは、副問い合わせのうち、内側のSelect文が参照している列が、外側の文にも含まれている場合だと思います。

集合論の包含関係で言うと、
{副問い合わせ} ⊃ {相関副問い合わせ}
だと思います。

だから見分けるには、内側の文で見ている列が、外側の文にもあるかどうか確認する、ということになるでしょう。

処理する順序も違うはずです。
相関副問い合わせの場合、外側の文で一行ずつ処理するたびに、内側の文を処理すると思います。

相関副問い合わせでない副問い合わせの場合、あらかじめ内側の文を一回だけ処理して、結果を記憶しておいて、それをもとに外側の文を処理すると思います。

参考URLにその辺にふれているサイトを挙げておきます。

参考URL:http://www.pursue.ne.jp/SQLDoc/select15.htm,http …
    • good
    • 0
この回答へのお礼

ありがとうございます。なんとなく解った気がします。主問い合わせの列名と副問合せの列名が一致していたら相関問い合わせなんですね?なるほどぉ~と感心しました!

お礼日時:2005/04/05 22:34

問題は解決したのでしょうか?


お役に立てたのならよかったのですが・・・
解決したら回答の締め切りをお願いします。

参考URL:http://oshiete.goo.ne.jp/ask/howto/our_request.h …
    • good
    • 0
この回答へのお礼

返事が遅くなり、申し訳ございませんでした。ありがとうございました!

お礼日時:2005/04/13 16:06

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル統計2012とオフィス2013の互換

オフィス2003からバージョンアップするためにオフィス2013を
インストールしたところ,エクセルの反応速度がかなり遅くなり,
エクセル立ち上げ時に必ず「応答なし」メッセージが出てから
立ち上がるようになりました.

その原因をカスタマーサービスに問い合わせると,かなり詳細に
調べていただき,インストールしているエクセル統計2012が邪魔を
していることが原因だということがわかりました.
実際,エクセル統計2012を外すと以前のように反応速度が上がります.

そこで質問です.

そもそもオフィス2013とエクセル統計2012は互換性があるのでしょうか.
説明書をみると無いような感じです.無いとすれば,なぜインストールして
一応使える状態になっているのか.

互換性がないとすれば,互換性を持たせて,エクセルの反応速度を
正常にする方法はありますか.

以上,2点についてご教示いただけましたら幸いです.

Aベストアンサー

> そもそもオフィス2013とエクセル統計2012は互換性があるのでしょうか.
説明書をみると無いような感じです.無いとすれば,なぜインストールして
一応使える状態になっているのか.

No.1の方が添付されたURLのページを読むと、「エクセル統計2012」は『実用的統計手法を多数搭載した、Excel のアドインソフトです』と書かれています。

「アドインソフト」は、Excelなどのソフトの機能を拡張するためのソフトですから、互換性はなくExcelなどのソフトと一緒でないと動作しないのです。

「アドインソフト」
http://www.weblio.jp/content/%E3%82%A2%E3%83%89%E3%82%A4%E3%83%B3%E3%82%BD%E3%83%95%E3%83%88

Qsqlの副問合せについて

初級シスアドの勉強をしている者ですが、SQLの副問合せがさっぱり理解できません。副問合せとは、どのように抽出する文なのでしょうか?解る方、お手数かけますが教えていただければ幸いです。

Aベストアンサー

そうですねー。括弧の中のSQL、これが副問い合わせで、それを先に実行すると、その結果が返ってきます。データ1件かもしれませんし、複数かも知れません。で、それを、私が挙げた例の前者の場合は「テーブルの代わり」として、また、後者の場合は「検索条件の一覧」として利用するわけです。

前者の場合がわかりやすいと思います。普通、SELECT文はテーブルからデータを持ってきます。が、この場合、副問い合わせで得た結果を、テーブルの代わりに使ってしまうわけです。

Qエクセル統計

エクセル統計を活用したいのですが・・

OSはWinXPでExcel2003を使用しています。
しかし、以前Ex2000で使用していた「エクセル統計2002(Ex2000&2002対応)」のソフトしか持っていません。
このソフトをEx2003でインストールしてみるとアドイン設定もできましたが、問題なく使用できるのでしょうか?

また、Exを立ち上げる度に「エクセル統計をアドイン登録します」といったメッセージがでて「はい」「いいえ」を選択するのですが、どちらをえ選んでもツールバーには表示されます。立ち上げる度にメッセージがでたり、選択したりしなくてもいいようにしたいのですがどうすればよいのでしょうか?

アドバイスをお願いします。

Aベストアンサー

http://software.ssri.co.jp/ex2002/ex2002_faq.html#q7

販売だか開発元らしきページにはこういう風に書いてあるけど。
つまりは「エクセル統計2004」を買ってくれ・・・って言う事のようです。

参考URL:http://software.ssri.co.jp/ex2002/ex2002_faq.html#q7

QSQL 副問い合わせ EXSIST?

いつもお世話になってます。独学で情報処理勉強しています。
【専門用語をなるべく使わずに】答えていただける方お願いします。

表が「社員表」と「社員有資格表」の二つしかなくて、
社員表    |社員番号|社員名|所属|
社員有資格表 |社員番号|資格名|登録日|
「資格を複数持つ社員を抽出するSQL」で
SELECT DISTINCT 社員番号 FROM 社員有資格表 B1
WHERE EXSISTS (SELECT * FROM 社員有資格表 B2
WHERE B1.社員番号=B2.社員番号 AND B1.資格名<>B2資格名)
のB1とかB2はなんですか。

Aベストアンサー

No.1の方が言われるようにB1、B2はニックネームです。
しかし、ここでは1つの表にB1、B2の2つのニックネームをつけています。
こうすることによって同じ表同士の比較ができます。

同じ2つの表同士で社員番号が同じで資格名がちがうものが存在するかどうかをテストしています。
それがEXISTS(存在する)です。

因みに該当者は社員番号が複数出てしまいますのでこれを一つにまとめるのがDISTINCTです。
また、この問題では社員表は使う必要はありません。(ひっかけ問題?)

Qエクセル統計2002はExcel2007では使えないのですか?

見た目が大きく変わったExcel2007なのですが,エクセル統計2002を使えるようにしたいです.ですが,Excel2000とExcel2002対応としか書いてないので,やはり無理でしょうか?

よろしくお願いします.

Aベストアンサー

ある会社のソフトについての、質問なのだから、当然その会社に質問すべきでは無いですか。
http://software.ssri.co.jp/user/ssri_sup_center.html#contact
(エクセルについては、格段にユーザーが多いので、こういうカテが
質問に設けられているが、市販ソフトの全体的に見ると例外的)
何事によらず、一番良くわかっているところに聞かないと、複雑化した現在では、場合により、ひどい目にあうよ(良く経験するので)。

Q副問い合わせの不可解な問題

情報処理試験を受験しようと思いますが、前提知識の補強に今苦戦しています。SQLの問題で以下の出題趣旨と解答の理由がわかりませんでした。どなたか解釈いただければ幸いです。

問)次の表1と表2に対するSQL文のうち、適切なものはどれか
表1        表2

X | Y |Z |   X | Y |Z |
a1 | b1|1|  d1 | e1|1|
a2 | b2|1|  d2 | e2|1|
a3 | b3|2|  d3 | e3|2|

ア.Select X FROM 表1  WHERE ( SELECT Y FROM 表2 ) = Y

イ.Select X FROM 表1  WHERE Y IN( SELECT * FROM 表2 WHERE Z = 1)

ウ.Select X、Y FROM 表1  WHERE Y IN( SELECT Y FROM 表2 WHERE Z = 1)


エ.Select X、Y FROM 表1  WHERE Y =( SELECT Y FROM 表2 WHERE Z = 1)

正解はウですが。ウではどのような表が最終的にできるのかわかりません。副問い合わせの仕組みはおぼろげに他の本でわかりましたが、本設問については何度考えてもわかりません。

どなたか助けてください。、。

情報処理試験を受験しようと思いますが、前提知識の補強に今苦戦しています。SQLの問題で以下の出題趣旨と解答の理由がわかりませんでした。どなたか解釈いただければ幸いです。

問)次の表1と表2に対するSQL文のうち、適切なものはどれか
表1        表2

X | Y |Z |   X | Y |Z |
a1 | b1|1|  d1 | e1|1|
a2 | b2|1|  d2 | e2|1|
a3 | b3|2|  d3 | e3|2|

ア.Select X FROM 表1  WHERE ( SELECT Y FROM 表2 ) = Y

イ.Select X ...続きを読む

Aベストアンサー

ア:(SELECT Y FROM 表2)= Y
このような書き方は存在しません。エラーとなります。

イ: WHERE Y IN(SELECT * FROM ...)
SELECT * FROM で複数結果が帰ってくるため、INを使用している点は正しいです。しかし、SELECT * としているため、Y と比較することができません。
もし、正しいSQLにするのであれば、 WHERE Y IN(SELECT Y FROM ...) となります。

ウ: ○

エ: WHERE Y = (SELECT Y FROM ...)
SELECT Y の結果が複数帰ってきます。 = で比較できるのは、単一結果(結果が1件)のみの場合です。

SQLは、慣れるまでは複雑に思えるかもしれません。
でも、一度ポイントを覚えてしまえば、自由自在に使えるようになります。あきらめずにがんばってください。

Qエクセル統計

パソコンをリカバリーすることになり,officeXP,エクセル統計2002をインストールし直したのですが,Excelを立ち上げるたびに「アドインを登録します」で「Yes・No」を尋ねるウインドウが出るようになりました.

この選択肢ではどちらを選んでも,エクセル統計はちゃんと起動するものの,リカバリー前はそういった現象は起こらなかったので,設定に問題があるのだと思い調べてみましたが,分かりませんでした.
もし,何か設定があるのであれば教えてください.

Aベストアンサー

はじめまして

ツール→アドインで不要なアドインのチェックを外してOKをクリックしてみてください。

的外れでしたらごめんなさい。

Q基本情報でSQLの問題がありますが・・・

基本情報技術者試験の勉強をしていて、SGLの問題が出ていましたが、この部分は暗記するところなんでしょうか?それともプログラミングみたいに、何かソフトを用意して練習するところなんでしょうか?
暗記するべきところなのか、それとも実技で覚えるところかわからないのですが、どっちなんでしょうか?

Aベストアンサー

こんにちは。

 構文自体は暗記ですが、実際は色々パラメータの組み合わせもあるので、スタンドアロンのDBをご自分のPCにインストールして実行しながら覚えるのがベストだと思います。

では。

Qエクセル統計での単変量解析の仕方

エクセル統計(2010)での単変量解析の仕方を教えていただきたくメールしています。

まず、現在特定の疾患に罹患した患者の情報を、後ろ向きにある薬剤の併用群と非併用群とで病気の悪化までの期間、および生存期間にどう影響しているのかを検討する研究を行っています。

 使用している薬剤の使用状況や患者背景などたくさんの因子が病気悪化や生存に影響していると考えられるため、多変量解析をしていくのが最も有用と思われますが、その前に、患者背景(年齢、性別、前治療歴など)の雑多な因子を単変量解析にて検討して多重共線性を解析した上でCox比例ハザードモデルで多変量解析したいと思っています。

 そこで、最初のふるいわけをする単変量解析のやり方がよくわからず、エクセル統計2010を使用した場合、どのように開始していくのか教えていただければ幸いです。各調査項目に関してハザード比、95%CI、検定結果(p値)として標記したいと思っています。

 よろしくお願いします。
  

Aベストアンサー

 ご質問の内容から、30歳くらいの医師もしくは薬剤師の「ご研究」で、この解析結果を学会等でご発表すると推察します。それだと、これ以上の回答は、研究者の倫理に反します。
 発表会場から、「その方法は間違っている」と指摘され、「このようにすれば教えて貰った」と返答した時に「誰から」と問われても返答できません。間違っている、と指摘するのが私かもしれません。
 発表などが、連名でなく、お一人での研究なら、倫理違反ではないのですが。他の方の回答が無いのは、回答することその行為自体が研究者としての倫理に反する危惧があるかも。というわけで、昔の私の状態を思い出すので、他人事とも思えないので、以下独り言。

 まず、統計は、自分の理解できる範囲でしかやりません。多変量解析は、理解不能なのでしません。それで困ったことはありません。
 相関分析は、超有名大学の教員が「医学のあゆみ」に投稿した論文を「間違い」と指摘できます。なぜなら、散布図に二本の直線を引いてるからです。もちろんその説明はありません。多変量解析は、「有意差あり」とは書いてあっても、なぜそんな関係になるのか、は述べていないものがほとんどです。その理由が科学であって、記述が無いのはドキュメントにすぎません。というわけで、私は、背伸びをしません。

>「有意水準0.1として単変量解析を行い、独立変数同士の多重共線性を検討した。Cramerの独立変数0.8以上で有意水準0.05未満の場合、一方の変数を削除した。」
統計は、難しいので真似から始めました。真似るのは賛成ですが、理解できていないものを真似ても役には立ちません。学会で質問されると、立ち往生。
 上記の文は、私は理解できません。私なら、「多重共線性を回避するため、独立変数同士の単回帰分析と相関分析を行い、相関係数が0.1以上のものは、一方の変数を除いた」と書きます。
 
 目的から、いきなり多変量解析は必要ないのでは。例えば、効果が男女であるかどうかは、私ならχ2乗検定をします。
 ただ、実験動物なら、雄と雌の条件を揃えることができるでしょう。が、人の場合は、年齢、体重、既往歴、年収、などなどを同一にするのが困難なので、「A群とB群に差は無い」とする帰無仮説が成立するのか、この出発点が不安です。
 不安ついでに、エクセルては、単回帰分析はできても、重回帰分析はできません(そのハズ)。アドインソフトをお持ちでしょうか。

 ご質問の内容から、30歳くらいの医師もしくは薬剤師の「ご研究」で、この解析結果を学会等でご発表すると推察します。それだと、これ以上の回答は、研究者の倫理に反します。
 発表会場から、「その方法は間違っている」と指摘され、「このようにすれば教えて貰った」と返答した時に「誰から」と問われても返答できません。間違っている、と指摘するのが私かもしれません。
 発表などが、連名でなく、お一人での研究なら、倫理違反ではないのですが。他の方の回答が無いのは、回答することその行為自体が研究...続きを読む

QSQLの利用について教えてください

秋に基本情報技術者試験を受ける者です。
午前中の試験対策を独学で進めていますが、SQL文の基本構造は理解できたのですが、それを実際にどのような現場で利用するのかがよくわからず困っています。
会話型SQLの場合、Excelを立ち上げている際に、記述して利用するのですか?それとも別のコマンドを立ち上げて、そこに別個に記述するのでしょうか。
基礎的なことで申し訳ありませんが、よろしくお願いします。

Aベストアンサー

SQLを使って何をするのかというよりも、データベースソフトを利用している時、どのようにしてSQLを使用するのか?という意味でしょうか。もしそうでしたら、PostgreSQLを例に説明します。

PostgreSQLにはpsqlという会話型ツールがあります。このpsqlを、Windowsでしたらコマンドプロンプトから起動し、SQLを打ちこんで実行します。全ての操作はコマンドプロンプトのウィンドウ内で行います。これとは別に、GUIの操作ツールがあります。Windows版にはpgAdminというのがついています。これを使えば、SQLを知らなくてもデータベースが操作できます。また、pgAdminで、SQLを使用するウィンドウを開いて、そこに自分で記述して実行するということもできます。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報