oracle 如何实现excel的正态分布函数normdist
oracle 如何实现excel的正态分布函数normdist
实现目标
EXCEL中的NORMDIST是指返回指定平均值和标准偏差的正态分布函数。此函数在统计方面应用范围广泛(包括假设检验)。
语法:
NORMDIST(x,mean,standard_dev,cumulative)
X 为需要计算其分布的数值。
Mean 分布的算术平均值。
Standard_dev 分布的标准偏差。
Cumulative 为一逻辑值,指明函数的形式。如果 cumulative 为 TRUE,函数 NORMDIST 返回累积分布函数;如果为 FALSE,返回概率密度函数。
如何在oracle中实现excel的NORMDIST函数?
实现思路分析
1、dbms_random.normal函数是用于生成一组正态分布的随机值。不满足要求;
2、java中可以通过apache-commons-math3.jar包实现正态分布函数计算;
3、oracle是否可通过函数调用Java代码?
java函数调用示例
import org.apache.commons.math3.distribution.NormalDistribution;public class normdist {/*** 计算正态分布值* * <pre>* 方法同excel NORMDIST 函数* </pre>* * @param x* 需要计算其分布的数值* @param mean* 分布的算术平均值* @param standard_dev* 标准偏差* @return 正态分布值*/public static double get(double x, double mean, double standard_dev) {return new NormalDistribution(mean, standard_dev).density(x);}public static void main(String[] args) {for (double d = 0; d < 1.0; d += 0.1) {System.out.println(String.format("%.1f\t %.5f", d, get(d, 0, 4)));}}
}
输出:
0.0 0.09974
0.1 0.09970
0.2 0.09961
0.3 0.09946
0.4 0.09924
0.5 0.09896
0.6 0.09862
0.7 0.09822
0.8 0.09776
0.9 0.09724
1.0 0.09667
Oacle调用示例
oracle导入jar包
将jar包放到目录下:D:\dev\java_sources\commons-math3-3.0.jar
打开cmd命令窗口,加载jar包:commons-math3-3.0.jar 到oracle中
loadjava -r -f -o -user user/pwd@orcl commons-math3-3.0.jar
创建正态分布函数
-- 创建外部目录,存储jar包
create or replace directory class_dir as 'D:\dev\java_sources';
-- 查看目录
select * from dba_directories;-- 创建java sources
create or replace and compile java source named normdist
as
import org.apache.commons.math3.distribution.NormalDistribution;
public class normdist
{/*** 计算正态分布值* * <pre>* 方法同excel NORMDIST 函数* </pre>* * @param x* 需要计算其分布的数值* @param mean* 分布的算术平均值* @param standard_dev* 标准偏差* @return 正态分布值*/public static double get(double x_in, double mean_in, double standard_dev_in) {return new NormalDistribution(mean_in, standard_dev_in).density(x_in);}
};-- 创建正态分布函数
create or replace function fn_normdist(x_in in number, mean_in in number, standard_dev_in number)
return number
as language java name 'normdist.get(double,double,double)
return double';-- 正态分布函数调用
select fn_normdist(0, 0, 4) as n0, fn_normdist(1, 0, 4) as n1
from dual/*
清理代码
drop function fn_normdist;
drop java source normdist;
*/
调用截图:
参考
https://cloud.tencent.com/developer/ask/149846
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/jjdev/loadjava-tool.html#GUID-AEB08FAD-BE91-45D6-8338-031A70D97C59
https://www.cnblogs.com/mellowsmile/p/4602481.html
oracle 如何实现excel的正态分布函数normdist相关推荐
- 使用SQL 计算一组数据的峰度、偏度 公式依据excel的KURT函数和SKEW函数 Oracle 数据库
使用SQL 计算一组数据的峰度.偏度 公式依据excel的KURT函数和SKEW函数 因为工作原因,要把excel的KURT和SKEW函数在Oracle实现出来并统计,在网上找了半天没有答案..只能自 ...
- oracle算加权平均的函数,怎样在Excel表中用函数算加权平均数?《电子表格加权平均函数》...
怎样在Excel表中用函数算加权平均数? 例子:学校末成绩,考30%,期末考试占50 %,假如期中考试得了84,期末92,作业分91,在A列输入考试成绩依次为84.92.91:在B列依次输入0.3.0 ...
- oracle 不等函数,SQL(Oracle)日常使用与不常使用函数的汇总
--日常使用的sql语句和oracle语句,有些相对使用的频率比较高,收藏起来还是比较值得的 -- 绝对值 SQL:select abs(-1) value Oracle:select abs(-1) ...
- EXCEL生成正态分布随机数据
EXCEL生成正态分布随机数据 如果用Matlab就为简单些,normrnd+normpdf就可实现.但是考虑到excel的普及性,所以采用excel来解决: 1.产生符合正态分布的随机数:输入&qu ...
- R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数
R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数 目录
- R语言dataframe分组数据汇总(aggregate and sum):类似于excel的sumif函数
R语言dataframe分组数据汇总统计(aggregate and sum):类似于excel的sumif函数 目录 R语言dataframe分组数据汇总统计(aggregate and sum): ...
- excel的if函数中android,excel中if函数嵌套式使用教程
exce表格数据统计函数的示例 函数统计数据步骤1:每个函数均有三个参数:database.field 和 criteria.这些参数指向函数所使用的工作表区域. 函数统计数据步骤2:除了GETPIV ...
- EXCEL中SUMIF函数介绍
在EXCEL中SUMIF函数是一个常用的汇总函数,下面来介绍一下EXCEL中的SUMIF函数的使用方法. 下图是介绍该函数的简单数据数据: 此函数可以进行判定,当某数据项满足特定的条件时,将特定的数据 ...
- oracle中类似indexof用法_instr函数
oracle中类似indexof用法_instr函数 [sql] 在oracle中没有indexof()函数 但是提供了一个 instr() 方法 具体用法: select instr('保定市南市区 ...
- 【图文】Excel中vlookup函数的使用方法
今天统计数据,用到了Excel中vlookup函数,第一次使用当然少不了百度,经过反复研究后,算是解决了问题,现整理成文档. 一.实现效果 Sheet1 Sheet2 注:上图中she ...
最新文章
- wxWidgets:wxSpinDoubleEvent类用法
- LUNA再次夺冠,科大讯飞向世界宣告自己的实力不止于语音
- 我想做一个课程表系统利用PHP+MYSQL+HTML实现课表的展示,但是不知道如何实现
- 前端-requests-flask对应关系 json
- DSP双线性变换详解
- nfc修改饭卡软件下载_你还要什么校园卡?有NFC不就够了
- linux ping 命令_Linux ping命令示例
- LiveVideoStack线上分享第四季(九):360视频云Web前端HEVC播放器实践剖析
- 小米笔记本解决风扇异响
- 你真正付出了全部努力了吗?
- 配置Spring AOP aspectj-autoproxy标签源码解析
- iPhone7产业链不为人知的辛酸
- mysql查询笔记_MySQL学习笔记(一):查询
- Typora1.0.2 + SMMS上传图片
- 跳汰机的实操经验总结
- linux中合并多个文件到一个文件中
- spark实践-淘宝双十一数据分析与预测
- Vert.x ——概述
- 2---MATLAB将十进制转换成二进制补码
- 【.NET6+Modbus】Modbus TCP协议解析、仿真环境以及基于.NET实现基础通信
热门文章
- python安装 文件或目录损坏_文件或目录损坏且无法读取怎么办?
- Java类的声明详解
- 小区同步、LTE的时间结构(FDD/TDD)
- 【破解软件】知音漫客免费看更多漫画
- 2019hdu暑假多校训练赛第五场1004 equation hdu 6627 (高中数学题)
- python搭建自己的网站_Python+Django搭建自己的blog网站
- 最优二叉查找树,动态规划法,二维表,填表优化,代码
- 结对编程-李晓彤+凌嘉文
- Fail: Failover,Failfast,Failback,Failsafe
- 计算机 无法自检,电脑开机不能自检是什么原因 电脑不能完成自检解决办法