您当前位置:主页 > 资讯攻略 >
来源:未知
2021-07-07 04:40:30 浏览: 分类:资讯攻略

Oracle数据库常用函数(4)

68.PL/SQL中的case语句

从dual中选择(当DUMMY='X '然后0否则1结束时的情况)作为标志;

case的第一种用法:

当“a”然后是1时的大小写列

当b是2时

else 0结束

这种用法与decode相同。

case的第二种用法:

得分时的情况& lt60然后是d

当分数>时;=60,得分& lt70然后是c

当分数>时;=70且得分& lt80然后是b

否则结束

69.NVL(表达式1,表达式2)

NVL(表达式1,表达式2)->Expr1为空,返回expr2;不为NULL并返回expr1。注意两者同类型。

NVL2(表达式1,表达式2,表达式3)-& gt;Expr1不为空,expr2被返回;为NULL并返回expr3。如果expr2和expr3的类型不同,则expr3将被转换为expr2的类型。

NULLIF (expr1,expr 2)-& gt;相等返回NULL,不相等返回expr1。

Oracle分析功能参考手册

=============================================

Oracle从8.1.6开始就提供了分析函数,用于计算一些基于组的聚合值。它与聚合函数的不同之处在于,它为每个组返回多行,而聚合函数只为每个组返回一行。

常用的分析功能如下:

row_number() over(分区依据...以...排序...)

排名()超过(分区依据...以...排序...)

dense_rank() over(分区依据...以...排序...)

count()超过(分区依据...以...排序...)

最大()超过(分区依据...以...排序...)

min() over(分区依据...以...排序...)

sum() over(分区依据...以...排序...)

平均()超过(分区依据...以...排序...)

first_value() over(分区依据...以...排序...)

last_value() over(分区依据...以...排序...)

lag() over(分区依据...以...排序...)

将()置于(分区依据...以...排序...)

以下示例中使用的表来自Oracle提供的HR用户下的表。如果没有安装该用户,它可以在SYS用户下运行。

$ Oracle _ home/demo/schema/human _ resources/HR _ main . SQL来创建它。

除了本文的内容,您还可以参考:

汇总和多维数据集[URL]http://xsb.itpub.net/post/419/29159[/URL]

分析功能示例介绍:[URL]http://xsb.itpub.net/post/419/44634[/URL]

如果本文中没有指定,默认情况下将在HR用户下运行该示例。

了解窗口功能:

窗口函数指定分析函数的数据窗口大小。该数据窗口大小可以随着行的变化而变化,例如:

Over(order by salary)根据薪资顺序累加,order by是默认的开窗函数。

按部门划分。

超过(按50以上150以下的工资范围排序)

每行对应的数据窗口是前一行的幅度值不超过50,后一行的幅度值不超过150。

超过(按前面50行和后面150行之间的薪金行排序)

每行对应的数据窗口是前50行和后150行。

over(按无界之前和无界之后之间的薪金行排序)

每行对应的数据窗口是从第一行到最后一行,相当于:

超过(按无界之前和无界之后之间的薪金范围排序)

主要参考资料:专家一对一,Tom kyte,《Oracle 9i SQL参考》第六章。

哦哦哦哦哦哦哦

70.AVG

描述:用于计算组和数据窗口中表达式的平均值。

示例:以下示例中的列c_mavg计算employee表中每个雇员的平均工资报表,该报表是由当前雇员、前者和后者同一个经理的平均值得到的;

SELECT经理标识,姓氏,雇用日期,薪金,

AVG(薪金)超过(按经理标识划分,按聘用日期排序

EN 1之前的行和之后的1行)作为c_mavg

来自员工;

经理ID姓氏聘用日期薪金C MAVG

- - - - -

100 Koch har 1989年9月21日

100德哈恩1993年1月13日

拉斐尔街100号1994年12月7日11000 11966.6667

100考夫林1995年5月1日

100哈特斯坦1996年2月17日13000 9633.33333

100韦斯1996年7月18日8000 11666.6667

100罗素01-10-96 14000 11833.3333

71。求相关系数或方差

描述:返回一对表达式的相关系数,其缩写如下:

COVAR_POP(expr1,expr 2)/STDDEV _ POP(expr 1)* STDDEV _ POP(expr 2))

从统计学上讲,相关性是变量之间相关性的强弱,而变量之间的相关性在某种程度上意味着

最后一个变量的值可以通过其他值来预测。通过返回一个介于-1和1之间的数字,相关

系数给出了相关性的强度,0表示没有相关性。

示例:以下示例返回1998年每月销售收入和每月单位销售额之间关系的累积系数(此示例在sh用户下运行)

SELECT t.calendar_month_number

CORR (SUM(s.amount_sold),SUM(s.quantity_sold))

超过(按日历月数排序)累计CORR

从销售s,乘以t

其中,s.time_id = t.time_id,日历年= 1998

按t.calendar_month_number分组

ORDER BY t . calendar _ month _ number;

日历_月份_数字累计_CORR

- -

一个

2 1

3 .994309382

4 .852040875

5 .846652204

6 .871250628

7 .910029803

8 .917556399

9 .920154356

10 .86720251

11 .844864765

12 .903542662

72。COVAR_POP

描述:返回一对表达式的总协方差。

示例:以下示例CUM_COVP返回定价和最低产品价格的累计总协方差。

选择产品标识,供应商标识,

COVAR_POP(列表价格,最小价格)

超过(按产品标识、供应商标识排序)作为累计COVP,

COVAR_SAMP(list_price,min_price)

作为累计COVS(按产品标识、供应商标识排序)

来自产品信息p

其中类别标识= 29

按产品标识、供应商标识排序;

产品标识供应商标识累计COVP累计COVS

- - - -

1774 103088 0

1775 103087 1473.25 2946.5

1794 103096 1702.77778 2554.16667

1825 103093 1926.25 2568.33333

2004 103086 1591.4 1989.25

2005 103086 1512.5 1815

2416 103088 1475.97959 1721.97619

73。COVAR_SAMP

描述:返回一对表达式的样本协方差。

样本:以下示例CUM_COVS返回定价和最低产品价格的累积样本协方差。

选择产品标识,供应商标识,

COVAR_POP(列表价格,最小价格)

超过(按产品标识、供应商标识排序)作为累计COVP,

COVAR_SAMP(list_price,min_price)

作为累计COVS(按产品标识、供应商标识排序)

来自产品信息p

其中类别标识= 29

按产品标识、供应商标识排序;

产品标识供应商标识累计COVP累计COVS

- - - -

1774 103088 0

1775 103087 1473.25 2946.5

1794 103096 1702.77778 2554.16667

1825 103093 1926.25 2568.33333

2004 103086 1591.4 1989.25

2005 103086 1512.5 1815

2416 103088 1475.97959 1721.97619

本文链接:http://www.123down.cn/gonglue/227202.html

攻略资讯
安卓软件