深圳网络做网站app开发费用大概多少

news/2025/10/5 22:57:34/文章来源:
深圳网络做网站,app开发费用大概多少,手机网站建设教程,2345浏览器影视大全22/06/2005 12:22 FPOracle从8.1.6开始提供分析函数#xff0c;分析函数用于计算基于组的某种聚合值#xff0c;它和聚合函数的不同之处是对于每个组返回多行#xff0c;而聚合函数对于每个组只返回一行。下面例子中使用的表来自Oracle自带的HR用户下的表#xff0c;如果没…22/06/2005 12:22 FPOracle从8.1.6开始提供分析函数分析函数用于计算基于组的某种聚合值它和聚合函数的不同之处是对于每个组返回多行而聚合函数对于每个组只返回一行。下面例子中使用的表来自Oracle自带的HR用户下的表如果没有安装该用户可以在SYS用户下运行$ORACLE_HOME/demo/schema/human_resources/hr_main.sql来创建。本文如果未指明缺省是在HR用户下运行例子。开窗函数的的理解开窗函数指定了分析函数工作的数据窗口大小这个数据窗口大小可能会随着行的变化而变化举例如下over(order by salary) 按照salary排序进行累计order by是个默认的开窗函数over(partition by deptno)按照部门分区over(order by salary range between 50 preceding and 150 following)每行对应的数据窗口是之前行幅度值不超过50之后行幅度值不超过150over(order by salary rows between 50 preceding and 150 following)每行对应的数据窗口是之前50行之后150行over(order by salary rows between unbounded preceding and unbounded following)每行对应的数据窗口是从第一行到最后一行等效over(order by salary range between unbounded preceding and unbounded following)主要参考资料《expert one-on-one》 Tom Kyte 《Oracle9i SQL Reference》第6章AVG功能描述用于计算一个组和数据窗口内表达式的平均值。SAMPLE下面的例子中列c_mavg计算员工表中每个员工的平均薪水报告该平均值由当前员工和与之具有相同经理的前一个和后一个三者的平均数得来SELECT manager_id, last_name, hire_date, salary,AVG(salary) OVER (PARTITION BY manager_id ORDER BY hire_dateROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS c_mavgFROM employees;MANAGER_ID LAST_NAME HIRE_DATE SALARY C_MAVG---------- ------------------------- --------- ---------- ----------100 Kochhar 21-SEP-89 17000 17000100 De Haan 13-JAN-93 17000 15000100 Raphaely 07-DEC-94 11000 11966.6667100 Kaufling 01-MAY-95 7900 10633.3333100 Hartstein 17-FEB-96 13000 9633.33333100 Weiss 18-JUL-96 8000 11666.6667100 Russell 01-OCT-96 14000 11833.3333CORR功能描述返回一对表达式的相关系数它是如下的缩写COVAR_POP(expr1,expr2)/STDDEV_POP(expr1)*STDDEV_POP(expr2))从统计上讲相关性是变量之间关联的强度变量之间的关联意味着在某种程度上一个变量的值可由其它的值进行预测。通过返回一个-1~1之间的一个数, 相关系数给出了关联的强度0表示不相关。SAMPLE下例返回1998年月销售收入和月单位销售的关系的累积系数(本例在SH用户下运行)SELECT t.calendar_month_number,CORR (SUM(s.amount_sold), SUM(s.quantity_sold))OVER (ORDER BY t.calendar_month_number) as CUM_CORRFROM sales s, times tWHERE s.time_id t.time_id AND calendar_year 1998GROUP BY t.calendar_month_numberORDER BY t.calendar_month_number;CALENDAR_MONTH_NUMBER CUM_CORR--------------------- ----------12 13 .9943093824 .8520408755 .8466522046 .8712506287 .9100298038 .9175563999 .92015435610 .8672025111 .84486476512 .903542662COVAR_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_COVSFROM product_information pWHERE category_id 29ORDER BY product_id, supplier_id;PRODUCT_ID SUPPLIER_ID CUM_COVP CUM_COVS---------- ----------- ---------- ----------1774 103088 01775 103087 1473.25 2946.51794 103096 1702.77778 2554.166671825 103093 1926.25 2568.333332004 103086 1591.4 1989.252005 103086 1512.5 18152416 103088 1475.97959 1721.97619..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_COVSFROM product_information pWHERE category_id 29ORDER BY product_id, supplier_id;PRODUCT_ID SUPPLIER_ID CUM_COVP CUM_COVS---------- ----------- ---------- ----------1774 103088 01775 103087 1473.25 2946.51794 103096 1702.77778 2554.166671825 103093 1926.25 2568.333332004 103086 1591.4 1989.252005 103086 1512.5 18152416 103088 1475.97959 1721.97619..COUNT功能描述对一组内发生的事情进行累积计数如果指定*或一些非空常数count将对所有行计数如果指定一个表达式count返回表达式非空赋值的计数当有相同值出现时这些相等的值都会被纳入被计算的值可以使用DISTINCT来记录去掉一组中完全相同的数据后出现的行数。SAMPLE下面例子中计算每个员工在按薪水排序中当前行附近薪水在[n-50,n150]之间的行数n表示当前行的薪水例如Philtanker的薪水2200排在他之前的行中薪水大于等于2200-50的有1行排在他之后的行中薪水小于等于2200150的行没有所以count计数值cnt3为2(包括自己当前行)cnt2值相当于小于等于当前行的SALARY值的所有行数SELECT last_name, salary, COUNT(*) OVER () AS cnt1,COUNT(*) OVER (ORDER BY salary) AS cnt2,COUNT(*) OVER (ORDER BY salary RANGE BETWEEN 50 PRECEDINGAND 150 FOLLOWING) AS cnt3 FROM employees;LAST_NAME SALARY CNT1 CNT2 CNT3------------------------- ---------- ---------- ---------- ----------Olson 2100 107 1 3Markle 2200 107 3 2Philtanker 2200 107 3 2Landry 2400 107 5 8Gee 2400 107 5 8Colmenares 2500 107 11 10Patel 2500 107 11 10..CUME_DIST功能描述计算一行在组中的相对位置CUME_DIST总是返回大于0、小于或等于1的数该数表示该行在N行中的位置。例如在一个3行的组中返回的累计分布值为1/3、2/3、3/3SAMPLE下例中计算每个工种的员工按薪水排序依次累积出现的分布百分比SELECT job_id, last_name, salary, CUME_DIST()OVER (PARTITION BY job_id ORDER BY salary) AS cume_distFROM employees WHERE job_id LIKE PU%;JOB_ID LAST_NAME SALARY CUME_DIST---------- ------------------------- ---------- ----------PU_CLERK Colmenares 2500 .2PU_CLERK Himuro 2600 .4PU_CLERK Tobias 2800 .6PU_CLERK Baida 2900 .8PU_CLERK Khoo 3100 1PU_MAN Raphaely 11000 1DENSE_RANK功能描述根据ORDER BY子句中表达式的值从查询返回的每一行计算它们与其它行的相对位置。组内的数据按ORDER BY子句排序然后给每一行赋一个号从而形成一个序列该序列从1开始往后累加。每次ORDER BY表达式的值发生变化时该序列也随之增加。有同样值的行得到同样的数字序号(认为null时相等的)。密集的序列返回的时没有间隔的数SAMPLE下例中计算每个员工按部门分区再按薪水排序依次出现的序列号(注意与RANK函数的区别)SELECT d.department_id , e.last_name, e.salary, DENSE_RANK()OVER (PARTITION BY e.department_id ORDER BY e.salary) as drankFROM employees e, departments dWHERE e.department_id d.department_idAND d.department_id IN (60, 90);DEPARTMENT_ID LAST_NAME SALARY DRANK------------- ------------------------- ---------- ----------60 Lorentz 4200 160 Austin 4800 260 Pataballa 4800 260 Ernst 6000 360 Hunold 9000 490 Kochhar 17000 190 De Haan 17000 190 King 24000 2FIRST功能描述从DENSE_RANK返回的集合中取出排在最前面的一个值的行(可能多行因为值可能相等)因此完整的语法需要在开始处加上一个集合函数以从中取出记录SAMPLE下面例子中DENSE_RANK按部门分区再按佣金commission_pct排序FIRST取出佣金最低的对应的所有行然后前面的MAX函数从这个集合中取出薪水最低的值LAST取出佣金最高的对应的所有行然后前面的MIN函数从这个集合中取出薪水最高的值SELECT last_name, department_id, salary,MIN(salary) KEEP (DENSE_RANK FIRST ORDER BY commission_pct)OVER (PARTITION BY department_id) Worst,MAX(salary) KEEP (DENSE_RANK LAST ORDER BY commission_pct)OVER (PARTITION BY department_id) BestFROM employeesWHERE department_id in (20,80)ORDER BY department_id, salary;LAST_NAME DEPARTMENT_ID SALARY Worst Best------------------------- ------------- ---------- ---------- ----------Fay 20 6000 6000 13000Hartstein 20 13000 6000 13000Kumar 80 6100 6100 14000Banda 80 6200 6100 14000Johnson 80 6200 6100 14000Ande 80 6400 6100 14000Lee 80 6800 6100 14000Tuvault 80 7000 6100 14000Sewall 80 7000 6100 14000Marvins 80 7200 6100 14000Bates 80 7300 6100 14000...FIRST_VALUE功能描述返回组中数据窗口的第一个值。SAMPLE下面例子计算按部门分区按薪水排序的数据窗口的第一个值对应的名字如果薪水的第一个值有多个则从多个对应的名字中取缺省排序的第一个名字SELECT department_id, last_name, salary, FIRST_VALUE(last_name)OVER (PARTITION BY department_id ORDER BY salary ASC ) AS lowest_salFROM employeesWHERE department_id in(20,30);DEPARTMENT_ID LAST_NAME SALARY LOWEST_SAL------------- ------------------------- ---------- --------------20 Fay 6000 Fay20 Hartstein 13000 Fay30 Colmenares 2500 Colmenares30 Himuro 2600 Colmenares30 Tobias 2800 Colmenares30 Baida 2900 Colmenares30 Khoo 3100 Colmenares30 Raphaely 11000 ColmenaresLAG功能描述可以访问结果集中的其它行而不用进行自连接。它允许去处理游标就好像游标是一个数组一样。在给定组中可参考当前行之前的行这样就可以从组中与当前行一起选择以前的行。Offset是一个正整数其默认值为1若索引超出窗口的范围就返回默认值(默认返回的是组中第一行)其相反的函数是LEADSAMPLE下面的例子中列prev_sal返回按hire_date排序的前1行的salary值SELECT last_name, hire_date, salary,LAG(salary, 1, 0) OVER (ORDER BY hire_date) AS prev_salFROM employeesWHERE job_id PU_CLERK;LAST_NAME HIRE_DATE SALARY PREV_SAL------------------------- ---------- ---------- ----------Khoo 18-5月 -95 3100 0Tobias 24-7月 -97 2800 3100Baida 24-12月-97 2900 2800Himuro 15-11月-98 2600 2900Colmenares 10-8月 -99 2500 2600LAST功能描述从DENSE_RANK返回的集合中取出排在最后面的一个值的行(可能多行因为值可能相等)因此完整的语法需要在开始处加上一个集合函数以从中取出记录SAMPLE下面例子中DENSE_RANK按部门分区再按佣金commission_pct排序FIRST取出佣金最低的对应的所有行然后前面的MAX函数从这个集合中取出薪水最低的值LAST取出佣金最高的对应的所有行然后前面的MIN函数从这个集合中取出薪水最高的值SELECT last_name, department_id, salary,MIN(salary) KEEP (DENSE_RANK FIRST ORDER BY commission_pct)OVER (PARTITION BY department_id) Worst,MAX(salary) KEEP (DENSE_RANK LAST ORDER BY commission_pct)OVER (PARTITION BY department_id) BestFROM employeesWHERE department_id in (20,80)ORDER BY department_id, salary;LAST_NAME DEPARTMENT_ID SALARY Worst Best------------------------- ------------- ---------- ---------- ----------Fay 20 6000 6000 13000Hartstein 20 13000 6000 13000Kumar 80 6100 6100 14000Banda 80 6200 6100 14000Johnson 80 6200 6100 14000Ande 80 6400 6100 14000Lee 80 6800 6100 14000Tuvault 80 7000 6100 14000Sewall 80 7000 6100 14000Marvins 80 7200 6100 14000Bates 80 7300 6100 14000.LAST_VALUE功能描述返回组中数据窗口的最后一个值。SAMPLE下面例子计算按部门分区按薪水排序的数据窗口的最后一个值对应的名字如果薪水的最后一个值有多个则从多个对应的名字中取缺省排序的最后一个名字SELECT department_id, last_name, salary, LAST_VALUE(last_name)OVER(PARTITION BY department_id ORDER BY salary) AS highest_salFROM employeesWHERE department_id in(20,30);DEPARTMENT_ID LAST_NAME SALARY HIGHEST_SAL------------- ------------------------- ---------- ------------20 Fay 6000 Fay20 Hartstein 13000 Hartstein30 Colmenares 2500 Colmenares30 Himuro 2600 Himuro30 Tobias 2800 Tobias30 Baida 2900 Baida30 Khoo 3100 Khoo30 Raphaely 11000 RaphaelyLEAD功能描述LEAD与LAG相反LEAD可以访问组中当前行之后的行。Offset是一个正整数其默认值为1若索引超出窗口的范围就返回默认值(默认返回的是组中第一行)SAMPLE下面的例子中每行的NextHired返回按hire_date排序的下一行的hire_date值SELECT last_name, hire_date,LEAD(hire_date, 1) OVER (ORDER BY hire_date) AS NextHiredFROM employees WHERE department_id 30;LAST_NAME HIRE_DATE NextHired------------------------- --------- ---------Raphaely 07-DEC-94 18-MAY-95Khoo 18-MAY-95 24-JUL-97Tobias 24-JUL-97 24-DEC-97Baida 24-DEC-97 15-NOV-98Himuro 15-NOV-98 10-AUG-99Colmenares 10-AUG-99MAX功能描述在一个组中的数据窗口中查找表达式的最大值。SAMPLE下面例子中dept_max返回当前行所在部门的最大薪水值SELECT department_id, last_name, salary,MAX(salary) OVER (PARTITION BY department_id) AS dept_maxFROM employees WHERE department_id in (10,20,30);DEPARTMENT_ID LAST_NAME SALARY DEPT_MAX------------- ------------------------- ---------- ----------10 Whalen 4400 440020 Hartstein 13000 1300020 Fay 6000 1300030 Raphaely 11000 1100030 Khoo 3100 1100030 Baida 2900 1100030 Tobias 2800 1100030 Himuro 2600 1100030 Colmenares 2500 11000MIN功能描述在一个组中的数据窗口中查找表达式的最小值。SAMPLE下面例子中dept_min返回当前行所在部门的最小薪水值SELECT department_id, last_name, salary,MIN(salary) OVER (PARTITION BY department_id) AS dept_minFROM employees WHERE department_id in (10,20,30);DEPARTMENT_ID LAST_NAME SALARY DEPT_MIN------------- ------------------------- ---------- ----------10 Whalen 4400 440020 Hartstein 13000 600020 Fay 6000 600030 Raphaely 11000 250030 Khoo 3100 250030 Baida 2900 250030 Tobias 2800 250030 Himuro 2600 250030 Colmenares 2500 2500NTILE功能描述将一个组分为表达式的散列表示例如如果表达式4则给组中的每一行分配一个数(从1到4)如果组中有20行则给前5行分配1给下5行分配2等等。如果组的基数不能由表达式值平均分开则对这些行进行分配时组中就没有任何percentile的行数比其它percentile的行数超过一行最低的percentile是那些拥有额外行的percentile。例如若表达式4行数21则percentile1的有5行percentile2的有5行等等。SAMPLE下例中把6行数据分为4份SELECT last_name, salary,NTILE(4) OVER (ORDER BY salary DESC) AS quartile FROM employeesWHERE department_id 100;LAST_NAME SALARY QUARTILE------------------------- ---------- ----------Greenberg 12000 1Faviet 9000 1Chen 8200 2Urman 7800 2Sciarra 7700 3Popp 6900 4PERCENT_RANK功能描述和CUME_DIST(累积分配)函数类似对于一个组中给定的行来说在计算那行的序号时先减1然后除以n-1(n为组中所有的行数)。该函数总是返回01(包括1)之间的数。SAMPLE下例中如果Khoo的salary为2900则pr值为0.6因为RANK函数对于等值的返回序列值是一样的SELECT department_id, last_name, salary,PERCENT_RANK()OVER (PARTITION BY department_id ORDER BY salary) AS prFROM employeesWHERE department_id 50ORDER BY department_id,salary;DEPARTMENT_ID LAST_NAME SALARY PR------------- ------------------------- ---------- ----------10 Whalen 4400 020 Fay 6000 020 Hartstein 13000 130 Colmenares 2500 030 Himuro 2600 0.230 Tobias 2800 0.430 Baida 2900 0.630 Khoo 3100 0.830 Raphaely 11000 140 Mavris 6500 0PERCENTILE_CONT功能描述返回一个与输入的分布百分比值相对应的数据值分布百分比的计算方法见函数PERCENT_RANK如果没有正好对应的数据值就通过下面算法来得到值RN 1 (P*(N-1)) 其中P是输入的分布百分比值N是组内的行数CRN CEIL(RN) FRN FLOOR(RN)if (CRN FRN RN) then(value of expression from row at RN)else(CRN - RN) * (value of expression for row at FRN) (RN - FRN) * (value of expression for row at CRN)注意本函数与PERCENTILE_DISC的区别在找不到对应的分布值时返回的替代值的计算方法不同SAMPLE在下例中对于部门60的Percentile_Cont值计算如下P0.7 N5 RN 1 (P*(N-1)1(0.7*(5-1))3.8 CRN CEIL(3.8)4FRN FLOOR(3.8)3(4 - 3.8)* 4800 (3.8 - 3) * 6000 5760SELECT last_name, salary, department_id,PERCENTILE_CONT(0.7) WITHIN GROUP (ORDER BY salary)OVER (PARTITION BY department_id) Percentile_Cont,PERCENT_RANK()OVER (PARTITION BY department_id ORDER BY salary) Percent_RankFROM employees WHERE department_id IN (30, 60);LAST_NAME SALARY DEPARTMENT_ID Percentile_Cont Percent_Rank------------------------- ---------- ------------- --------------- ------------Colmenares 2500 30 3000 0Himuro 2600 30 3000 0.2Tobias 2800 30 3000 0.4Baida 2900 30 3000 0.6Khoo 3100 30 3000 0.8Raphaely 11000 30 3000 1Lorentz 4200 60 5760 0Austin 4800 60 5760 0.25Pataballa 4800 60 5760 0.25Ernst 6000 60 5760 0.75Hunold 9000 60 5760 1PERCENTILE_DISC功能描述返回一个与输入的分布百分比值相对应的数据值分布百分比的计算方法见函数CUME_DIST如果没有正好对应的数据值就取大于该分布值的下一个值。注意本函数与PERCENTILE_CONT的区别在找不到对应的分布值时返回的替代值的计算方法不同SAMPLE下例中0.7的分布值在部门30中没有对应的Cume_Dist值所以就取下一个分布值0.83333333所对应的SALARY来替代SELECT last_name, salary, department_id,PERCENTILE_DISC(0.7) WITHIN GROUP (ORDER BY salary )OVER (PARTITION BY department_id) Percentile_Disc,CUME_DIST() OVER (PARTITION BY department_id ORDER BY salary) Cume_DistFROM employeesWHERE department_id in (30, 60);LAST_NAME SALARY DEPARTMENT_ID Percentile_Disc Cume_Dist------------------------- ---------- ------------- --------------- ----------Colmenares 2500 30 3100 .166666667Himuro 2600 30 3100 .333333333Tobias 2800 30 3100 .5Baida 2900 30 3100 .666666667Khoo 3100 30 3100 .833333333Raphaely 11000 30 3100 1Lorentz 4200 60 6000 .2Austin 4800 60 6000 .6Pataballa 4800 60 6000 .6Ernst 6000 60 6000 .8Hunold 9000 60 6000 1RANK功能描述根据ORDER BY子句中表达式的值从查询返回的每一行计算它们与其它行的相对位置。组内的数据按ORDER BY子句排序然后给每一行赋一个号从而形成一个序列该序列从1开始往后累加。每次ORDER BY表达式的值发生变化时该序列也随之增加。有同样值的行得到同样的数字序号(认为null时相等的)。然而如果两行的确得到同样的排序则序数将随后跳跃。若两行序数为1则没有序数2序列将给组中的下一行分配值3DENSE_RANK则没有任何跳跃。SAMPLE下例中计算每个员工按部门分区再按薪水排序依次出现的序列号(注意与DENSE_RANK函数的区别)SELECT d.department_id , e.last_name, e.salary, RANK()OVER (PARTITION BY e.department_id ORDER BY e.salary) as drankFROM employees e, departments dWHERE e.department_id d.department_idAND d.department_id IN (60, 90);DEPARTMENT_ID LAST_NAME SALARY DRANK------------- ------------------------- ---------- ----------60 Lorentz 4200 160 Austin 4800 260 Pataballa 4800 260 Ernst 6000 460 Hunold 9000 590 Kochhar 17000 190 De Haan 17000 190 King 24000 3RATIO_TO_REPORT功能描述该函数计算expression/(sum(expression))的值它给出相对于总数的百分比即当前行对sum(expression)的贡献。SAMPLE下例计算每个员工的工资占该类员工总工资的百分比SELECT last_name, salary, RATIO_TO_REPORT(salary) OVER () AS rrFROM employeesWHERE job_id PU_CLERK;LAST_NAME SALARY RR------------------------- ---------- ----------Khoo 3100 .223021583Baida 2900 .208633094Tobias 2800 .201438849Himuro 2600 .18705036Colmenares 2500 .179856115REGR_ (Linear Regression) Functions功能描述这些线性回归函数适合最小二乘法回归线有9个不同的回归函数可使用。REGR_SLOPE返回斜率等于COVAR_POP(expr1, expr2) / VAR_POP(expr2)REGR_INTERCEPT返回回归线的y截距等于AVG(expr1) - REGR_SLOPE(expr1, expr2) * AVG(expr2)REGR_COUNT返回用于填充回归线的非空数字对的数目REGR_R2返回回归线的决定系数计算式为If VAR_POP(expr2) 0 then return NULLIf VAR_POP(expr1) 0 and VAR_POP(expr2) ! 0 then return 1If VAR_POP(expr1) 0 and VAR_POP(expr2 ! 0 thenreturn POWER(CORR(expr1,expr),2)REGR_AVGX计算回归线的自变量(expr2)的平均值去掉了空对(expr1, expr2)后等于AVG(expr2)REGR_AVGY计算回归线的应变量(expr1)的平均值去掉了空对(expr1, expr2)后等于AVG(expr1)REGR_SXX 返回值等于REGR_COUNT(expr1, expr2) * VAR_POP(expr2)REGR_SYY 返回值等于REGR_COUNT(expr1, expr2) * VAR_POP(expr1)REGR_SXY: 返回值等于REGR_COUNT(expr1, expr2) * COVAR_POP(expr1, expr2)(下面的例子都是在SH用户下完成的)SAMPLE 1下例计算1998年最后三个星期中两种产品(260和270)在周末的销售量中已×××数量和总数量的累积斜率和回归线的截距SELECT t.fiscal_month_number Month, t.day_number_in_month Day,REGR_SLOPE(s.amount_sold, s.quantity_sold)OVER (ORDER BY t.fiscal_month_desc, t.day_number_in_month) AS CUM_SLOPE,REGR_INTERCEPT(s.amount_sold, s.quantity_sold)OVER (ORDER BY t.fiscal_month_desc, t.day_number_in_month) AS CUM_ICPTFROM sales s, times tWHERE s.time_id t.time_idAND s.prod_id IN (270, 260)AND t.fiscal_year1998AND t.fiscal_week_number IN (50, 51, 52)AND t.day_number_in_week IN (6,7)ORDER BY t.fiscal_month_desc, t.day_number_in_month;Month Day CUM_SLOPE CUM_ICPT---------- ---------- ---------- ----------12 12 -68 187212 12 -68 187212 13 -20.244898 1254.3673512 13 -20.244898 1254.3673512 19 -18.826087 128712 20 62.4561404 125.2865512 20 62.4561404 125.2865512 20 62.4561404 125.2865512 20 62.4561404 125.2865512 26 67.2658228 58.971231312 26 67.2658228 58.971231312 27 37.5245541 284.95822112 27 37.5245541 284.95822112 27 37.5245541 284.958221SAMPLE 2下例计算1998年4月每天的累积交易数量SELECT UNIQUE t.day_number_in_month,REGR_COUNT(s.amount_sold, s.quantity_sold)OVER (PARTITION BY t.fiscal_month_number ORDER BY t.day_number_in_month)Regr_CountFROM sales s, times tWHERE s.time_id t.time_idAND t.fiscal_year 1998 AND t.fiscal_month_number 4;DAY_NUMBER_IN_MONTH Regr_Count------------------- ----------1 8252 16503 24754 3300...26 2145030 22200SAMPLE 3下例计算1998年每月销售量中已×××数量和总数量的累积回归线决定系数SELECT t.fiscal_month_number,REGR_R2(SUM(s.amount_sold), SUM(s.quantity_sold))OVER (ORDER BY t.fiscal_month_number) Regr_R2FROM sales s, times tWHERE s.time_id t.time_idAND t.fiscal_year 1998GROUP BY t.fiscal_month_numberORDER BY t.fiscal_month_number;FISCAL_MONTH_NUMBER Regr_R2------------------- ----------12 13 .9273729844 .8070199725 .9327455676 .946828617 .9653420118 .9557680759 .95954261810 .93861857511 .88093141512 .882769189SAMPLE 4下例计算1998年12月最后两周产品260的销售量中已×××数量和总数量的累积平均值SELECT t.day_number_in_month,REGR_AVGY(s.amount_sold, s.quantity_sold)OVER (ORDER BY t.fiscal_month_desc, t.day_number_in_month)Regr_AvgY,REGR_AVGX(s.amount_sold, s.quantity_sold)OVER (ORDER BY t.fiscal_month_desc, t.day_number_in_month)Regr_AvgXFROM sales s, times tWHERE s.time_id t.time_idAND s.prod_id 260AND t.fiscal_month_desc 1998-12AND t.fiscal_week_number IN (51, 52)ORDER BY t.day_number_in_month;DAY_NUMBER_IN_MONTH Regr_AvgY Regr_AvgX------------------- ---------- ----------14 882 24.514 882 24.515 801 22.2515 801 22.2516 777.6 21.618 642.857143 17.857142918 642.857143 17.857142920 589.5 16.37521 544 15.111111122 592.363636 16.454545522 592.363636 16.454545524 553.846154 15.384615424 553.846154 15.384615426 522 14.527 578.4 16.0666667SAMPLE 5下例计算产品260和270在1998年2月周末销售量中已×××数量和总数量的累积REGR_SXY, REGR_SXX, and REGR_SYY统计值SELECT t.day_number_in_month,REGR_SXY(s.amount_sold, s.quantity_sold)OVER (ORDER BY t.fiscal_year, t.fiscal_month_desc) Regr_sxy,REGR_SYY(s.amount_sold, s.quantity_sold)OVER (ORDER BY t.fiscal_year, t.fiscal_month_desc) Regr_syy,REGR_SXX(s.amount_sold, s.quantity_sold)OVER (ORDER BY t.fiscal_year, t.fiscal_month_desc) Regr_sxxFROM sales s, times tWHERE s.time_id t.time_idAND prod_id IN (270, 260)AND t.fiscal_month_desc 1998-02AND t.day_number_in_week IN (6,7)ORDER BY t.day_number_in_month;DAY_NUMBER_IN_MONTH Regr_sxy Regr_syy Regr_sxx------------------- ---------- ---------- ----------1 18870.4 2116198.4 258.41 18870.4 2116198.4 258.41 18870.4 2116198.4 258.41 18870.4 2116198.4 258.47 18870.4 2116198.4 258.48 18870.4 2116198.4 258.414 18870.4 2116198.4 258.415 18870.4 2116198.4 258.421 18870.4 2116198.4 258.422 18870.4 2116198.4 258.4ROW_NUMBER功能描述返回有序组中一行的偏移量从而可用于按特定标准排序的行号。SAMPLE下例返回每个员工再在每个部门中按员工号排序后的顺序号SELECT department_id, last_name, employee_id, ROW_NUMBER()OVER (PARTITION BY department_id ORDER BY employee_id) AS emp_idFROM employeesWHERE department_id 50;DEPARTMENT_ID LAST_NAME EMPLOYEE_ID EMP_ID------------- ------------------------- ----------- ----------10 Whalen 200 120 Hartstein 201 120 Fay 202 230 Raphaely 114 130 Khoo 115 230 Baida 116 330 Tobias 117 430 Himuro 118 530 Colmenares 119 640 Mavris 203 1STDDEV功能描述计算当前行关于组的标准偏离。(Standard Deviation)SAMPLE下例返回部门30按雇佣日期排序的薪水值的累积标准偏离SELECT last_name, hire_date,salary,STDDEV(salary) OVER (ORDER BY hire_date) StdDevFROM employeesWHERE department_id 30;LAST_NAME HIRE_DATE SALARY StdDev------------------------- ---------- ---------- ----------Raphaely 07-12月-94 11000 0Khoo 18-5月 -95 3100 5586.14357Tobias 24-7月 -97 2800 4650.0896Baida 24-12月-97 2900 4035.26125Himuro 15-11月-98 2600 3649.2465Colmenares 10-8月 -99 2500 3362.58829STDDEV_POP功能描述该函数计算总体标准偏离并返回总体变量的平方根其返回值与VAR_POP函数的平方根相同。(Standard DeviationPopulation)SAMPLE下例返回部门20、30、60的薪水值的总体标准偏差SELECT department_id, last_name, salary,STDDEV_POP(salary) OVER (PARTITION BY department_id) AS pop_stdFROM employeesWHERE department_id in (20,30,60);DEPARTMENT_ID LAST_NAME SALARY POP_STD------------- ------------------------- ---------- ----------20 Hartstein 13000 350020 Fay 6000 350030 Raphaely 11000 3069.609130 Khoo 3100 3069.609130 Baida 2900 3069.609130 Colmenares 2500 3069.609130 Himuro 2600 3069.609130 Tobias 2800 3069.609160 Hunold 9000 1722.3240160 Ernst 6000 1722.3240160 Austin 4800 1722.3240160 Pataballa 4800 1722.3240160 Lorentz 4200 1722.32401STDDEV_SAMP功能描述 该函数计算累积样本标准偏离并返回总体变量的平方根其返回值与VAR_POP函数的平方根相同。(Standard DeviationSample)SAMPLE下例返回部门20、30、60的薪水值的样本标准偏差SELECT department_id, last_name, hire_date, salary,STDDEV_SAMP(salary) OVER(PARTITION BY department_id ORDER BY hire_dateROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cum_sdevFROM employeesWHERE department_id in (20,30,60);DEPARTMENT_ID LAST_NAME HIRE_DATE SALARY CUM_SDEV------------- ------------------------- ---------- ---------- ----------20 Hartstein 17-2月 -96 1300020 Fay 17-8月 -97 6000 4949.7474730 Raphaely 07-12月-94 1100030 Khoo 18-5月 -95 3100 5586.1435730 Tobias 24-7月 -97 2800 4650.089630 Baida 24-12月-97 2900 4035.2612530 Himuro 15-11月-98 2600 3649.246530 Colmenares 10-8月 -99 2500 3362.5882960 Hunold 03-1月 -90 900060 Ernst 21-5月 -91 6000 2121.3203460 Austin 25-6月 -97 4800 2163.3307760 Pataballa 05-2月 -98 4800 1982.4227660 Lorentz 07-2月 -99 4200 1925.61678SUM功能描述该函数计算组中表达式的累积和。SAMPLE下例计算同一经理下员工的薪水累积值SELECT manager_id, last_name, salary,SUM (salary) OVER (PARTITION BY manager_id ORDER BY salaryRANGE UNBOUNDED PRECEDING) l_csumFROM employeesWHERE manager_id in (101,103,108);MANAGER_ID LAST_NAME SALARY L_CSUM---------- ------------------------- ---------- ----------101 Whalen 4400 4400101 Mavris 6500 10900101 Baer 10000 20900101 Greenberg 12000 44900101 Higgins 12000 44900103 Lorentz 4200 4200103 Austin 4800 13800103 Pataballa 4800 13800103 Ernst 6000 19800108 Popp 6900 6900108 Sciarra 7700 14600108 Urman 7800 22400108 Chen 8200 30600108 Faviet 9000 39600VAR_POP功能描述(Variance Population)该函数返回非空集合的总体变量(忽略null)VAR_POP进行如下计算(SUM(expr2) - SUM(expr)2 / COUNT(expr)) / COUNT(expr)SAMPLE下例计算1998年每月销售的累积总体和样本变量(本例在SH用户下运行)SELECT t.calendar_month_desc,VAR_POP(SUM(s.amount_sold))OVER (ORDER BY t.calendar_month_desc) Var_Pop,VAR_SAMP(SUM(s.amount_sold))OVER (ORDER BY t.calendar_month_desc) Var_SampFROM sales s, times tWHERE s.time_id t.time_id AND t.calendar_year 1998GROUP BY t.calendar_month_desc;CALENDAR Var_Pop Var_Samp-------- ---------- ----------1998-01 01998-02 6.1321E11 1.2264E121998-03 4.7058E11 7.0587E111998-04 4.6929E11 6.2572E111998-05 1.5524E12 1.9405E121998-06 2.3711E12 2.8453E121998-07 3.7464E12 4.3708E121998-08 3.7852E12 4.3260E121998-09 3.5753E12 4.0222E121998-10 3.4343E12 3.8159E121998-11 3.4245E12 3.7669E121998-12 4.8937E12 5.3386E12VAR_SAMP功能描述(Variance Sample)该函数返回非空集合的样本变量(忽略null)VAR_POP进行如下计算(SUM(expr*expr)-SUM(expr)*SUM(expr)/COUNT(expr))/(COUNT(expr)-1)SAMPLE下例计算1998年每月销售的累积总体和样本变量SELECT t.calendar_month_desc,VAR_POP(SUM(s.amount_sold))OVER (ORDER BY t.calendar_month_desc) Var_Pop,VAR_SAMP(SUM(s.amount_sold))OVER (ORDER BY t.calendar_month_desc) Var_SampFROM sales s, times tWHERE s.time_id t.time_id AND t.calendar_year 1998GROUP BY t.calendar_month_desc;CALENDAR Var_Pop Var_Samp-------- ---------- ----------1998-01 01998-02 6.1321E11 1.2264E121998-03 4.7058E11 7.0587E111998-04 4.6929E11 6.2572E111998-05 1.5524E12 1.9405E121998-06 2.3711E12 2.8453E121998-07 3.7464E12 4.3708E121998-08 3.7852E12 4.3260E121998-09 3.5753E12 4.0222E121998-10 3.4343E12 3.8159E121998-11 3.4245E12 3.7669E121998-12 4.8937E12 5.3386E12VARIANCE功能描述该函数返回表达式的变量Oracle计算该变量如下如果表达式中行数为1则返回0如果表达式中行数大于1则返回VAR_SAMPSAMPLE下例返回部门30按雇佣日期排序的薪水值的累积变化SELECT last_name, salary, VARIANCE(salary)OVER (ORDER BY hire_date) VarianceFROM employeesWHERE department_id 30;LAST_NAME SALARY Variance------------------------- ---------- ----------Raphaely 11000 0Khoo 3100 31205000Tobias 2800 21623333.3Baida 2900 16283333.3Himuro 2600 13317000Colmenares 2500 11307000连续求和问题select name,sum(cnt) over(order by rownum) from t1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NotImplementedError: Cannot convert a symbolic Tensor (lstm/strided_slice:0) to a numpy array.

NotImplementedError: Cannot convert a symbolic Tensor (lstm/strided_slice:0) to a numpy array. This error may indicate that youre trying to pass a Tensor to a NumPy call, which is not supportednumpy …

porting perf性能观测工具

1.cd sdk/kernel/linux/linux-6.1.83/tools/perf 2.make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- NO_LIBPYTHON=1 NO_LIBPERL=1 NO_LIBBPF=1 3.在当前路径下生成perf 4.copy到板子/tmp目录下 scp ./per…

Windows常用快捷指令

Windows常用快捷指令 总览shift+数字键:输入数字键上的特殊符号 shift+Ctrl:切换输入法(台式电脑) shift+空格:切换输入法(笔记本电脑) Ctrl+C:复制 Ctrl+V:粘贴 Ctrl+X:剪切 Ctrl+Z:撤销 Ctrl+Y:重做 Ctr…

网站建设价格方案网站程序 wordpress 织梦 discuz

公证服务信息您是否需要高吞吐量的Corda网络? 网络的吞吐量是否稳定? 您是否已经从其他领域挤出了所有可能的表现? 如果您对这些问题的回答是“是”,那么我可能会为您提供一些有用的信息。 我列出了这些问题,以减少您过…

Python 在金融中的应用- Part 1 - 教程

Python 在金融中的应用- Part 1 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

影响网站收录的因数沈阳工程最新动态

参考2.6.14版本中的driver/usb/input/usbmouse.c。鼠标驱动可分为几个部分:驱动加载部分、probe部分、open部分、urb回调函数处理部分。 一、驱动加载部分 [cpp] view plaincopy static int __init usb_mouse_init(void) { int retval usb_register(&a…

网站开发常用软件是什么成都市住房和城乡建设厅官方网站

编译安装为了实现MySQL的更高级别的性能调优,我们通常需要理解其内部实现机制,并对其进行优化调试。在下面的系列中,我们会分别介绍MySQL的部分内部实现机制。首先我们介绍如何从源代码部署一台MySQL服务器。1.下载MySQL Community Server源码…

QBXT2025S刷题 Day4

今天的题 \(75pts\ rk50+\) ,最废的一次。 T1 简单 \(\mathcal{DP}\)。 #include <iostream>using std::cin; using std::cout; const int N = 1e3 + 10; #define int long long const int mod = 998244353;int…

实用指南:2025年05月29日Github流行趋势

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

java学习日记9.25

9.25 学习笔记 类型转换由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。大小排序:byte, short,char-int-long-float[^1]-double运算中,不同类型的数据先转化为同一类型,然后进行运算。强制转换…

porting 开源memtester

1.下载代码 https://pyropus.ca./software/memtester/old-versions/ 目前用的版本是4.5.1 2.修改交叉编译器,并进行编译 arm-linux-gnueabihf-gcc3.指令 ./memtester 200M 5

广东省建设注册执业资格中心网站jae安装wordpress

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/version-1.01/src/voxgpu/sample/MultiMaterialPass.ts 此示例渲染系统实现的特性: 1. 用户态与系统态隔离。 2. 高频调用与低频调用隔离。 3. 面向用户的易用性封装。 4. 渲染数据和渲染机制分离。 …

江西省建设监理协会网站广州门户网站

目录 问题&#xff1a; 解决办法&#xff1a; 1.打开设置 2. 取消勾选 3.点击确认 4.解决 问题提出&#xff1a; 写shi山的过程中&#xff0c;给模块取错名字了&#xff0c;改名的时候不知道点到了什么&#xff0c;一个模块的pom.xml变成灰色了&#xff0…

上海专业网站建设维护wordpress后台进

Elasticsearch的Mapping Mapping是什么 Mapping定义了ES的索引结构、字段类型、分词器等&#xff0c;是索引的一部分。类似于关系型数据库中“表结构”的概念&#xff0c;在 Mapping 里也包含了一些属性&#xff0c;比如字段名称、类型、字段使用的分词器、是否评分、是否创建…

完整教程:用mediamtx搭建简易rtmp,rtsp视频服务器

完整教程:用mediamtx搭建简易rtmp,rtsp视频服务器pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

查找网站后台入口丝绸之路网站建设报告

安装Jenkins成功之后&#xff0c;首次启动Jenkins后台管理&#xff0c;进入到安装插件的步骤&#xff0c;选择"推荐安装"&#xff0c;继续下一步的时候出现错误提示&#xff1a; 出现一个错误 安装过程中出现一个错误&#xff1a;No such plugin&#xff1a;cloudb…

百度免费网站申请注册企业贷款

蓝桥集训之三国游戏 核心思想&#xff1a;贪心 将每个事件的贡献值求出 降序排序从大到小求和为正是即可 #include <iostream>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;const int N 100010;int a[N],b[N],c[N];…

oppoR9m MTK 6755 开启VCOM的9008模式

前言全局说明oppoR9m MTK 6755 开启VCOM的9008模式注意:刷机,会丢失用户:照片、聊天等信息资料。请备份基带等信息。请慎重刷机 !!! 注意:刷机,会丢失用户:照片、聊天等信息资料。请备份基带等信息。请慎重刷机 …

关于电脑息屏后自动亮屏的的原因排查及解决方式

1、问题描述 大约在 2025 年 9 月初的时候,我的联想拯救者笔记本电脑出现了锁屏息屏一段时间后自动亮屏的现象,在半夜时特别引人注意。 2、原因排查 经排查,我发现是联想壁纸服务的问题:异常现象发生后,锁屏壁纸不…

版本设计网站wordpress 试题

平台为了保证统一性&#xff0c;做了很多约定&#xff0c;例如按钮图标等&#xff0c;平台规定图标取自这两个地方。在整个平台上运行的系统必须保持一致。在这个层面上不允许个性发挥。 1) font-awesome import font-awesome/css/font-awesome.min.css // font-awesome …