【问题标题】:Oracle can we inverse the POWER functionOracle 我们可以反转 POWER 函数吗
【发布时间】:2019-07-01 13:05:00
【问题描述】:

抱歉,如果之前已发布此内容,我已经查看但没有找到任何东西。我不知道我正在尝试做的数学术语,这可能是我没有找到它的原因。

我希望得到 75% 的结果,我有一个表格,例如1500 行,我需要知道我必须将这些行设置为什么值,以便所有这些行的乘积或幂 = 75。

通过反复试验,我知道POWER(0.99981,1500) = 0.75199

有没有可以输入 75、1500 并得到 0.99981 作为输出的函数?

我尝试了LOG,但似乎没有用,或者我用错了。

【问题讨论】:

    标签: sql oracle function math plsql


    【解决方案1】:

    直接的数学定义是划分两个自然对数:

    SELECT POWER(0.99981,1500),
           LN(.751993891229747972713262500887354361902) / LN(0.99981)
    FROM DUAL
    

    您也可以使用LOG() 执行此操作。基数是第一个参数:

      log(0.99981, .751993891229747972713262500887354361902)
    

    编辑:

    糟糕,要获得基础,您可以使用:

    exp(ln(.751993891229747972713262500887354361902) / 1500)
    

    【讨论】:

    • 谢谢,但我不知道 0.9981。我只知道我想要 75 并且我有 1500 个值来拆分它
    【解决方案2】:

    从数学上讲,一个数的 n 次方根也是 1/n 次方的数,例如sqrt(x) = power(x, 1/2)

    所以你要的是:

    SELECT POWER(POWER(0.99981,1500), 1/1500) res
    FROM   dual;
    
    RES
    -------
    0.99981
    

    【讨论】:

      【解决方案3】:

      你有数学方程式:

      x1500 = 0.75

      两边取自然对数得到:

      1500 ln(x) = ln(0.75)

      可以重新排列为:

      ln(x) = ln(0.75)/1500

      取两边的指数函数得到:

      eln(x) = x = eln(0.75)/1500

      您可以将其从数学方程式转换为 Oracle 的 SQL,如下所示:

      SELECT EXP( LN( 0.75 ) / 1500 ) FROM DUAL;
      

      哪些输出:

      |经验(LN(0.75)/1500) | | ----------------------------------------------------: | | .9998082303418508590582823402912385708058 |

      db小提琴here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-10
        • 2022-08-16
        相关资源
        最近更新 更多