Oracle SQL での値の積の計算
同僚が質問をしました。Oracle SQL は SUM 関数に似た関数を評価できますが、値を乗算しますか?私たちの知る限り、Oracle SQL はそのような明示的な製品機能を提供していません。ただし、対数計算と指数計算を使用してこの操作をシミュレートする実用的な手法があります。
次のクエリを考えてみましょう:
SELECT PRODUCT(X) FROM ( SELECT 3 X FROM DUAL UNION ALL SELECT 5 X FROM DUAL UNION ALL SELECT 2 X FROM DUAL )
これにより、X 値の積を取得しようとします。 、これは 30 (3 x 5 x 2) になります。主な式は次のとおりです:
select exp(sum(ln(col))) from table;
この式では:
たとえば、指定された値の場合(3, 5, 2) の場合、式は次のように展開されます。
exp(ln(3) + ln(5) + ln(2)) = exp(1.0986122886681096 + 1.6094379124341003 + 0.6931471805599453) = exp(3.3912025714812163) = 29.999999701269282
「col」に正の値のみが含まれる場合、この手法では正確な結果が得られます。正でない値の場合は、別のアプローチが必要になる場合があります。
以上がOracle SQLで値の積を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。