知识大全 Oracle 9i 分析函数参考手册
Posted 函数
篇首语:旋转木马是这世上最残酷的游戏,彼此追逐,却永远隔着可悲的距离。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle 9i 分析函数参考手册相关的知识,希望对你有一定的参考价值。
Oracle 9i 分析函数参考手册 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Oracle从 开始提供分析函数 分析函数用于计算基于组的某种聚合值 它和聚合函数的不同之处是对于每个组返回多行 而聚合函数对于每个组只返回一行 下面例子中使用的表来自Oracle自带的HR用户下的表 如果没有安装该用户 可以在SYS用户下运行$ORACLE_HOME/demo/schema/human_resources/hr_main sql来创建 少数几个例子需要访问SH用户下的表 如果没有安装该用户 可以在SYS用户下运行$ORACLE_HOME/demo/schema/sales_history/sh_main sql来创建 如果未指明缺省是在HR用户下运行例子 开窗函数的的理解 开窗函数指定了分析函数工作的数据窗口大小 这个数据窗口大小可能会随着行的变化而变化 举例如下 over(order by salary) 按照salary排序进行累计 order by是个默认的开窗函数 over(partition by deptno)按照部门分区 over(order by salary range beeen preceding and following) 每行对应的数据窗口是之前行幅度值不超过 之后行幅度值不超过 over(order by salary rows beeen preceding and following) 每行对应的数据窗口是之前 行 之后 行 over(order by salary rows beeen unbounded preceding and unbounded following) 每行对应的数据窗口是从第一行到最后一行 等效 over(order by salary range beeen unbounded preceding and unbounded following) 主要参考资料 《expert one on one》 Tom Kyte 《Oracle i SQL Reference》第 章 AVG 功能描述 用于计算一个组和数据窗口内表达式的平均值 SAMPLE 下面的例子中列c_mavg计算员工表中每个员工的平均薪水报告 该平均值由当前员工和与之具有相同经理的前一个和后一个三者的平均数得来 SELECT manager_id last_name hire_date salary AVG(salary) OVER (PARTITION BY manager_id ORDER BY hire_date ROWS BEEEN PRECEDING AND FOLLOWING) AS c_mavg FROM employees; MANAGER_ID LAST_NAME HIRE_DATE SALARY C_MAVG Kochhar SEP De Haan JAN Raphaely DEC Kaufling MAY Hartstein FEB Weiss JUL Russell OCT CORR 功能描述 返回一对表达式的相关系数 它是如下的缩写 COVAR_POP(expr expr )/STDDEV_POP(expr )*STDDEV_POP(expr ))从统计上讲 相关性是变量之间关联的强度 变量之间的关联意味着在某种程度上一个变量的值可由其它的值进行预测 通过返回一个 ~ 之间的一个数 相关系数给出了关联的强度 表示不相关 SAMPLE 下例返回 年月销售收入和月单位销售的关系的累积系数(本例在SH用户下运行) SELECT t calendar_month_number CORR (SUM(s amount_sold) SUM(s quantity_sold)) OVER (ORDER BY t calendar_month_number) as CUM_CORR FROM sales s times t WHERE s time_id = t time_id AND calendar_year = GROUP BY t calendar_month_number ORDER BY t calendar_month_number; CALENDAR_MONTH_NUMBER CUM_CORR COVAR_POP 功能描述 返回一对表达式的总体协方差 SAMPLE 下例CUM_COVP返回定价和最小产品价格的累积总体协方差 SELECT product_id supplier_id COVAR_POP(list_price min_price) OVER (ORDER BY product_id supplier_id) AS CUM_COVP COVAR_SAMP(list_price min_price) OVER (ORDER BY product_id supplier_id) AS CUM_COVS FROM product_information p WHERE category_id = ORDER BY product_id supplier_id; PRODUCT_ID SUPPLIER_ID CUM_COVP CUM_COVS COVAR_SAMP 功能描述 返回一对表达式的样本协方差 SAMPLE 下例CUM_COVS返回定价和最小产品价格的累积样本协方差 SELECT product_id supplier_id COVAR_POP(list_price min_price) OVER (ORDER BY product_id supplier_id) AS CUM_COVP COVAR_SAMP(list_price min_price) OVER (ORDER BY product_id supplier_id) AS CUM_COVS FROM product_information p WHERE category_id = ORDER BY product_id supplier_id; PRODUCT_ID SUPPLIER_ID CUM_COVP CUM_COVS COUNT 功能描述 对一组内发生的事情进行累积计数 如果指定*或一些非空常数 count将对所有行计数 如果指定一个表达式 count返回表达式非空赋值的计数 当有相同值出现时 这些相等的值都会被纳入被计算的值 可以使用DISTINCT来记录去掉一组中完全相同的数据后出现的行数 SAMPLE 下面例子中计算每个员工在按薪水排序中当前行附近薪水在[n n+ ]之间的行数 n表示当前行的薪水 例如 Philtanker的薪水 排在他之前的行中薪水大于等于 的有 行 排在他之后的行中薪水小于等于 + 的行没有 所以count计数值cnt 为 (包括自己当前行) cnt 值相当于小于等于当前行的SALARY值的所有行数 SELECT last_name salary COUNT(*) OVER () AS cnt COUNT(*) OVER (ORDER BY salary) AS cnt COUNT(*) OVER (ORDER BY salary RANGE BEEEN PRECEDING AND FOLLOWING) AS cnt FROM employees; LAST_NAME SALARY CNT CNT CNT Olson Markle Philtanker Landry Gee Colmenares Patel CUME_DIST 功能描述 计算一行在组中的相对位置 CUME_DIST总是返回大于 小于或等于 的数 该数表示该行在N行中的位置 例如 在一个 行的组中 返回的累计分布值为 / / / SAMPLE 下例中计算每个工种的员工按薪水排序依次累积出现的分布百分比 SELECT job_id last_name salary CUME_DIST() OVER (PARTITION BY job_id ORDER BY salary) AS cume_dist FROM employees WHERE job_id LIKE PU% ; JOB_ID LAST_NAME SALARY CUME_DIST PU_CLERK Colmenares PU_CLERK Himuro PU_CLERK Tobias PU_CLERK Baida PU_CLERK Khoo PU_MAN Raphaely DENSE_RANK 功能描述 根据ORDER BY子句中表达式的值 从查询返回的每一行 计算它们与其它行的相对位置 组内的数据按ORDER BY子句排 cha138/Article/program/Oracle/201311/17275相关参考
名称 类型 说明abort 函数 引起放弃的意外处理abs 函数 绝对值函数addexitproc 函
数据库手册:速查Oracle函数列表 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PL/SQL
Oracle分析函数详述 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一分析函数(OVER)
Oracle分析函数的使用一 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 分析函数是oracl
Oracle使用hash分区优化分析函数查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在O
新手上路:Oracle分析函数学习笔记一 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 环境wi
知识大全 oracle的分析函数over(Partition by...)
oracle的分析函数over(Partitionby...) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
利用Oracle分析函数实现多行数据合并为一行 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! d
以下是对oracle中的常用函数进行了汇总介绍需要的朋友可以过来参考下 一运算符算术运算符+*/可以在select语句中使用连接运算符||selectdeptno||dnamefromd
知识大全 Oracle 9i 数据库管理实务讲座(一)-如何安装Oracle 9i Enterprise E
Oracle9i数据库管理实务讲座(一)-如何安装Oracle9iEnterpriseE 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发