ホームページ >データベース >mysql チュートリアル >専用の PRODUCT 関数を使用せずに Oracle SQL の列の積を計算するにはどうすればよいですか?
Oracle SQL での列の積の計算
Oracle SQL には、計算用の SUM 関数に似た専用の PRODUCT 関数はありません。列内の値の合計。これは、複数の値の積を求めるなど、特定の計算では制限となる場合があります。
ただし、べき乗関数と対数関数を使用して PRODUCT 関数をシミュレートできる手法が存在します。その仕組みは次のとおりです。
次のクエリを考えてみましょう。
SELECT PRODUCT(X) FROM ( SELECT 3 X FROM DUAL UNION ALL SELECT 5 X FROM DUAL UNION ALL SELECT 2 X FROM DUAL )
このクエリは、ネストされたサブクエリ内の X 列値の積を計算しようとします。
シミュレートするにはべき乗関数と対数関数を使用した PRODUCT では、次のことが使用できます。式:
select exp(sum(ln(col))) from table;
この式では:
たとえば、提供されたクエリのデータを使用します。
SELECT exp(sum(ln(X))) FROM ( SELECT 3 X FROM DUAL UNION ALL SELECT 5 X FROM DUAL UNION ALL SELECT 2 X FROM DUAL )
このクエリは、3、5、2 の自然対数の合計の指数を計算します。その結果は次のようになります。 in:
exp(ln(3) + ln(5) + ln(2)) exp(3.2958) 30
これは、この手法を使用して Oracle SQL の PRODUCT 関数をシミュレートする方法を示しています。
以上が専用の PRODUCT 関数を使用せずに Oracle SQL の列の積を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。