SELECT .. SELECT/ja

From SQLZOO
Jump to navigation Jump to search
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 を与えられている。

Subquery with IN

Find the countries in the same region as Bhutan

You may use a SELECT statement in the WHERE line - this returns a list of regions.

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

Correlated Subquery

If a value from the outer query appears in the inner query this is "correlated subquery".

Show the countries where the population is greater than 5 times the average for its region

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


See also: