1. ホーム
  2. sql

[解決済み] 計算された列を使用して、同じビューで別の列を計算する方法

2023-03-21 08:16:13

質問

この質問について、ご教授いただければと思います。 私はOracle SQL(このビューのためのSQL Developer)を使用しています...

私が次の列を持つテーブルを持っている場合。

  • 列A (数字)
  • B列 (数値)
  • C列 (数値)

私のビューでは

Select  
ColumnA,
ColumnB,
ColumnA + ColumnB As calccolumn1

さて、この時点で、私は calccolumn1 を使いたいのです。 を使いたいのですが、そのままでは...

Select  
ColumnA,
ColumnB,
ColumnA + ColumnB As calccolumn1
calccolumn1 / ColumnC as calccolumn2

私は何らかのサブクエリが必要だと考えていますが、ここであなたの助けが必要です。 同じクエリ内の別の計算でcalccolumn1を使用できるように、クエリをどのように記述すればよいでしょうか? それはIf thenまたはCase whenかもしれませんが、最終的には何らかの派生した数値になります。

どのように解決するのですか?

ネストされたクエリを使用することができます。

Select
  ColumnA,
  ColumnB,
  calccolumn1,
  calccolumn1 / ColumnC as calccolumn2
From (
  Select
    ColumnA,
    ColumnB,
    ColumnC,
    ColumnA + ColumnB As calccolumn1
  from t42
);

値を持つ行を持つ 3 , 4 , 5 を与える。

   COLUMNA    COLUMNB CALCCOLUMN1 CALCCOLUMN2
---------- ---------- ----------- -----------
         3          4           7         1.4

また、よほど高価な処理(例えば関数呼び出し)を行わない限り、最初の計算を繰り返すだけでよいでしょう。

Select
  ColumnA,
  ColumnB,
  ColumnA + ColumnB As calccolumn1,
  (ColumnA + ColumnB) / ColumnC As calccolumn2
from t42; 

   COLUMNA    COLUMNB CALCCOLUMN1 CALCCOLUMN2
---------- ---------- ----------- -----------
         3          4           7         1.4