知识大全 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

相关参考

知识大全 delphi函数参考手册

 名称           类型     说明abort           函数    引起放弃的意外处理abs            函数    绝对值函数addexitproc        函

知识大全 速查Oracle函数列表

数据库手册:速查Oracle函数列表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  PL/SQL

知识大全 Oracle分析函数详述

Oracle分析函数详述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一分析函数(OVER) 

知识大全 Oracle分析函数的使用一

Oracle分析函数的使用一  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  分析函数是oracl

知识大全 Oracle使用hash分区优化分析函数查询

Oracle使用hash分区优化分析函数查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在O

知识大全 新手上路:Oracle分析函数学习笔记一

新手上路:Oracle分析函数学习笔记一  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  环境wi

知识大全 oracle的分析函数over(Partition by...)

oracle的分析函数over(Partitionby...)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 利用Oracle分析函数实现多行数据合并为一行

利用Oracle分析函数实现多行数据合并为一行  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  d

知识大全 oracle常用函数汇总

以下是对oracle中的常用函数进行了汇总介绍需要的朋友可以过来参考下   一运算符算术运算符+*/可以在select语句中使用连接运算符||selectdeptno||dnamefromd

知识大全 Oracle 9i 数据库管理实务讲座(一)-如何安装Oracle 9i Enterprise E

Oracle9i数据库管理实务讲座(一)-如何安装Oracle9iEnterpriseE  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发