Difference between revisions of "SELECT .. SELECT/ja"

From SQLZOO
Jump to navigation Jump to search
 
(One intermediate revision by the same user not shown)
Line 27: Line 27:
 
<div class='qu'>
 
<div class='qu'>
 
<p class='imper'>ブータンBhutanと同じ地域region にある国を見つける</p>
 
<p class='imper'>ブータンBhutanと同じ地域region にある国を見つける</p>
<code>SELECT</code> 文を <code>WHERE</code> の行で使うことが出来る。この例では、サブクエリの結果は、地域regions のリスト(複数値)
+
<code>SELECT</code> 文を <code>WHERE</code> の行で使うことが出来る。この例では、サブクエリの結果は地域regions のリスト(複数値)になる場合がある。
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 38: Line 38:
 
</div>
 
</div>
  
==Correlated Subquery==
+
==相関サブクエリ==
 
<div class='qu'>
 
<div class='qu'>
<p>If a value from the outer query appears in the inner query this is "correlated subquery".</p>
+
<p>外側のクエリの値が内側のクエリに現れている場合、それは 相関サブクエリ である。</p>
<p class='imper'>Show the countries where the population is greater than 5 times the average for its region</p>
+
<p class='imper'>ある国の人口がその国の地域の人口の平均値の5倍を超える人口の国を表示する</p>
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 53: Line 53:
  
  
<div>See also:</div>
+
<div>次を参照:</div>
 
<ul>
 
<ul>
   <li>[[SELECT within SELECT Tutorial]]</li>
+
   <li>[[SELECT within SELECT Tutorial/ja]]</li>
   <li>[[SELECT_.._JOIN |SELECT JOIN]]</li>
+
   <li>[[SELECT_.._JOIN/ja |SELECT JOIN]]</li>
 
</ul>
 
</ul>

Latest revision as of 15:47, 18 April 2018

Language:Project:Language policy [[:{{#invoke:String|sub|SELECT .. SELECT/ja
 |1
 |Expression error: Unrecognized punctuation character "{".
}}|English]]

サブクエリ テーブル、導出テーブル、ネストしたクエリ

あるクエリの実行結果を別のクエリの中で利用できる。

FROM とサブクエリ

SELECT 文を FROM の行で使用できる。

次の場合、導出テーブル Xnamegdp_per_capita のフィールドを持つ。 内側の SELECT で求められた値は、外側の SELECT で使われる。

SELECT name, ROUND(gdp_per_capita)
  FROM
  (SELECT name,
          gdp/population AS gdp_per_capita
     FROM bbc) X
 WHERE gdp_per_capita>20000

注意)

  • 内部の表は別名 X が与えられている。
  • 内側のクエリの一つ目のフィールド名は元の名前 name のまま。
  • 内側のクエリの二つ目のフィールド名は別名 gdp_per_capita を与えられている。

IN とサブクエリ

ブータンBhutanと同じ地域region にある国を見つける

SELECT 文を WHERE の行で使うことが出来る。この例では、サブクエリの結果は地域regions のリスト(複数値)になる場合がある。

SELECT name
  FROM bbc
 WHERE region IN
  (SELECT region FROM bbc
    WHERE name='Bhutan')

相関サブクエリ

外側のクエリの値が内側のクエリに現れている場合、それは 相関サブクエリ である。

ある国の人口がその国の地域の人口の平均値の5倍を超える人口の国を表示する

SELECT name
  FROM bbc b1
 WHERE population> 
  5*(SELECT AVG(population) FROM bbc
     WHERE region=b1.region)


次を参照: