IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> ORACLE用自定义函数实现EXCEL中的NORMSINV与NORMSDIST函数功能 -> 正文阅读

[大数据]ORACLE用自定义函数实现EXCEL中的NORMSINV与NORMSDIST函数功能

?如下为ORACLE自定义函数:

CREATE OR REPLACE FUNCTION NORMSINV(P IN NUMBER)
  RETURN NUMBER 
AS
  A1     NUMBER(32, 22) := -39.696830286653757;
  A2     NUMBER(32, 22) := 220.9460984245205;
  A3     NUMBER(32, 22) := -275.92851044696869;
  A4     NUMBER(32, 22) := 138.357751867269;
  A5     NUMBER(32, 22) := -30.66479806614716;
  A6     NUMBER(32, 22) := 2.5066282774592392;
  B1     NUMBER(32, 22) := -54.476098798224058;
  B2     NUMBER(32, 22) := 161.58583685804089;
  B3     NUMBER(32, 22) := -155.69897985988661;
  B4     NUMBER(32, 22) := 66.80131188771972;
  B5     NUMBER(32, 22) := -13.280681552885721;
  C1     NUMBER(32, 22) := -0.0077848940024302926;
  C2     NUMBER(32, 22) := -0.32239645804113648;
  C3     NUMBER(32, 22) := -2.4007582771618381;
  C4     NUMBER(32, 22) := -2.5497325393437338;
  C5     NUMBER(32, 22) := 4.3746641414649678;
  C6     NUMBER(32, 22) := 2.9381639826987831;
  D1     NUMBER(32, 22) := 0.0077846957090414622;
  D2     NUMBER(32, 22) := 0.32246712907003983;
  D3     NUMBER(32, 22) := 2.445134137142996;
  D4     NUMBER(32, 22) := 3.7544086619074162;
  q      NUMBER(32, 22);
  r      NUMBER(32, 22);
  P_LOW  NUMBER(32, 22);
  P_HIGH NUMBER(32, 22);

BEGIN
  P_LOW  := 0.02425;
  P_HIGH := 1 - P_LOW;

  IF (p > 0 AND p < P_LOW) THEN
    q := SQRT(-2 * LN(p));
    RETURN(((((C1 * q + C2) * q + C3) * q + C4) * q + C5) * q + C6) /((((D1 * q + D2) * q + D3) * q + D4) * q + 1);
  ELSIF (p >= P_LOW AND p <= P_HIGH) THEN
    q := p - 0.5;
    r := q * q;
    RETURN(((((A1 * r + A2) * r + A3) * r + A4) * r + A5) * r + A6) * q /(((((B1 * r + B2) * r + B3) * r + B4) * r + B5) * r + 1);
  ELSIF (p > P_HIGH AND p < 1) THEN
    q := SQRT(-2 * LN(1 - p));
    RETURN -(((((C1 * q + C2) * q + C3) * q + C4) * q + C5) * q + C6) /((((D1 * q + D2) * q + D3) * q + D4) * q + 1);
  ELSE
    RETURN 0;
  END IF;
END;
CREATE OR REPLACE FUNCTION NORMSDIST(Z IN NUMBER) RETURN NUMBER AS
  A1    NUMBER(32, 22) := 0.319381530;
  A2    NUMBER(32, 22) := -0.356563782;
  A3    NUMBER(32, 22) := 1.781477973;
  A4    NUMBER(32, 22) := -1.821255978;
  A5    NUMBER(32, 22) := 1.330274429;
  GAMMA NUMBER(32, 22) := 0.231641900;
  X     NUMBER(32, 22);
  T     NUMBER(32, 22);
  N     NUMBER(32, 22);

BEGIN
  X := ABS(Z);
  T := 1 / (1 + GAMMA * X);
  N := 1 - (1 / (SQRT(2 * ACOS(-1))) * EXP(-Z * Z / 2)) * (A1 * T + A2 * POWER(T, 2) + A3 * POWER(T, 3) + A4 * POWER(T, 4) + A5 * POWER(T, 5));

  IF (Z > 6) THEN
    RETURN 1;
  ELSIF (Z < -6) THEN
    RETURN 0;
  ELSIF (Z < 0) THEN
    RETURN 1.0 - N;
  ELSE
    RETURN N;
  END IF;

END;
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-09 11:45:16  更:2021-12-09 11:45:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:40:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码