sponsoredlink



ORACLE  ★オラクル★  SQL 基礎 副問合せ having について
紹介します。

★オラクル★ havingで吹く問合せをする方法は?

たとえば、天丼屋のメニューの平均の値段と天丼屋別の平均の天丼の値段を比較します。
天丼屋のメニューの平均の値段より高い天丼屋を調査する。

select
天丼屋主人,
avg(値段)
from
メニュー一覧
group by
天丼屋主人,
having
avg(値段) >  (select avg(値段) from メニュー一覧)
;
   
上記は、副問合せで
天丼屋のメニュー一覧から平均の値段を出し、
副問合せ出だした値段より
高い値段の天丼屋主人を
出す例です。

★オラクル★
ORACLE  ★オラクル★  SQL 基礎 副問合せ グループ関数  について

以下は、 ★オラクル★ グループ関数 max を使用した、副問合せの例です。
価格が一番高い(max)メニューを抽出します。


select メニューNo,メニュー,値段
from メニュー一覧
where
  値段 = (select max(値段) from メニュー一覧 )
;

副問合せでグループ関数を使用すると、
結果として1つの値が出力されます。
その値をもとに
値段がもっとも高いメニューを取り出すことができます。

★オラクル★ グループ関数はmaxのほかにもございます。

くわしくはこちらです。
グループ関数へ
ORACLE  ★オラクル★  SQL 基礎 比較演算子 単一行副問合せ について

副問合せの結果が1行である場合、
副問合せの結果と主問合せのwhere句などで
以下の比較演算子を使用可能です。

【比較演算子 一覧】

= 等しい
> よりも大きい
>= 以上
< より小さい
<= 以下
<> 等しくない


【比較演算子使用例】

等しい
where 個数 = (select 個数 from 在庫一覧 where 品名 = 'ねじ');

より大きい
where 個数 > (select 個数 from 在庫一覧 where 品名 = 'ねじ');

以上
where 個数 >= (select 個数 from 在庫一覧 where 品名 = 'ねじ');

より小さい
where 個数 < (select 個数 from 在庫一覧 where 品名 = 'ねじ');

以下
where 個数 <= (select 個数 from 在庫一覧 where 品名 = 'ねじ');

等しくない
where 個数 <> (select 個数 from 在庫一覧 where 品名 = 'ねじ');


★オラクル★
ORACLE  ★オラクル★  SQL 基礎 単一行副問い合わせ selectについて

副問い合わせ 結果は1行です。

単一行副問い合わせ:1行の結果が返ってくる問い合わせのこと

天丼の単価より高い商品を求めるselect文はどんな?

それには、何を知っている必要がある?

select  値段 from メニュー where 何くう? = '天丼';

これで天丼の値段がメニューから取得できました。

この天丼の値段より高い商品を抽出したい場合のselect文は以下のとおり!

続きはこちら!:ORACLE オラクル SQL
ORACLE  ★オラクル★  SQL 基礎  副問い合わせ 方法 について

★オラクル★ 副問い合わせとは?

SELECT文の中に、別のSELECT文を入れることができます。
この【別のSELECT文】を副問い合わせするといいます。

例:天丼の値段より高い商品を探すには?

1.天丼の値段を調査(副問い合わせ)
2.天丼の値段1をもとに、天丼より高い商品を探す。(主問い合わせ)

select
 何にする?,価格
from メニュー一覧
where
 価格 = 【1の副問い合わせ】

【1の副問い合わせ】
  select
        価格
     from
         何にする? = 天丼'

天丼と同じ価格のメニューをしらべることができる!






Buzzurl/ hatena/ MyYahoo!/ livedoorClip/ Google/ niftyclip/ pookmark/ flog/ FC2/

category