ホームページ >データベース >mysql チュートリアル >SQL ビューでネストされた計算列を使用して複雑な計算を実行するにはどうすればよいですか?
SQL では、計算列はビュー内のデータ モデルを拡張するための貴重なツールです。これにより、既存の列から新しい値を導き出すことができ、より洗練された分析とプレゼンテーションの可能性が広がります。ただし、同じビュー内で後続の計算の一部として計算列自体を使用する必要がある場合はどうなりますか?
次の列を含むテーブルがある一般的なシナリオを考えてみましょう:
ビューの 1 つで、ColumnA と ColumnB を追加するだけで、calccolumn1 という計算列を作成しました。ここで、calccolumn1 を使用して、calccolumn1 を ColumnC で除算して、別の列 calccolumn2 を計算したいとします。
最初に、クエリを次のように記述してみます。
Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1 calccolumn1 / ColumnC as calccolumn2
残念ながら、これは機能しません。 calccolumn2 は、以前に計算された calccolumn1 を直接参照できません。
この問題に対する 1 つの解決策は、ネストされたクエリを使用することです。
Select ColumnA, ColumnB, calccolumn1, calccolumn1 / ColumnC as calccolumn2 From ( Select ColumnA, ColumnB, ColumnC, ColumnA + ColumnB As calccolumn1 from t42 );
このメソッドはサブクエリを作成します。 calccolumn1 を計算します。その後、メイン クエリは、計算でサブクエリの calccolumn1 を使用できます。
別のオプションは、可能であれば、メイン クエリで calccolumn1 の計算を単純に繰り返すことです。
Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1, (ColumnA + ColumnB) / ColumnC As calccolumn2 from t42;
このアプローチでは、特に計算時にネストされたクエリの複雑さが回避されます。 calccolumn1 の場合は比較的単純です。
以上がSQL ビューでネストされた計算列を使用して複雑な計算を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。