Asp.Net教程,WinForm教程,Asp.Net MVC,vs2008教程,vs2010教程,Silverlight技术,源码下载,Asp.Net视频教程
全站热门标签
vs2010 Silverlight 存储过程 水晶报表 ADO.NET JavaScript LINQ AjaxPro DataGridView 面向对象 Extjs GridView XML DevExpress HTML教程 Oracle jQuery 分页 GDI+ Visual C++2010 MySQL Office2010 WPF MVC Dojo WCF4.0 VB.NET Sql2005 textbox cookie WCF WinForm Discuz!NT SQL经典语句 T-SQL checkbox ASPxGridView F# asp.net SQL VS2008新特性 DropDownList Access TreeView Ajax VS2008 页面执行时间 Flex 字符串 回调 VB2005 DataSet C#时间 ASP.NET性能优化 用户在线检测 动画
SQL ServerOracle Access MySQL
当前位置: 主页 > 数据库 > Oracle >

Oracle分析函数——SUM,AVG,MIN,MAX,COUNT

时间:2010-01-15 20:29来源:未知 作者:admin 点击:

SUM

功能描述:该函数计算组中表达式的累积和。

SAMPLE :下例计算同一经理下员工的薪水累积值

 

MIN

功能描述:在一个组中的数据窗口中查找表达式的最小值。

SAMPLE :下面例子中 dept_min 返回当前行所在部门的最小薪水值

 

MAX

功能描述:在一个组中的数据窗口中查找表达式的最大值。

SAMPLE :下面例子中 dept_max 返回当前行所在部门的最大薪水值

 

AVG

功能描述:用于计算一个组和数据窗口内表达式的平均值。

SAMPLE :下面的例子中列 c_mavg 计算员工表中每个员工的平均薪水报告

 

SELECT

 department_id,

 first_name||' '||last_name employee_name,

 hire_date, 

 salary,

 MIN(salary) OVER (PARTITION BY department_id order by hire_date) AS dept_min,

 MAX(salary) OVER (PARTITION BY department_id order by hire_date) AS dept_max, 

 AVG(salary) OVER (PARTITION BY department_id order by hire_date) AS dept_avg,   

 SUM(salary) OVER (PARTITION BY department_id order by hire_date) AS dept_sum/*,   

 COUNT(*) OVER (ORDER BY salary) AS count_by_salary, 

 COUNT(*) OVER (ORDER BY salary RANGE BETWEEN 50 PRECEDING AND 150 FOLLOWING) AS count_by_salary_range*/

FROM employees


COUNT
功能描述:对一组内发生的事情进行累积计数,如果指定 * 或一些非空常数, count 将对所有行计数,如果指定一个表达式, count 返回表达式非空赋值的计数,当有相同值出现时,这些相等的值都会被纳入被计算的值;可以使用 DISTINCT 来记录去掉一组中完全相同的数据后出现的行数。
SAMPLE :下面例子中计算每个员工在按薪水排序中当前行附近薪水在 [n-50,n+150] 之间的行数, n 表示当前行的薪水
例如, Philtanker 的薪水 2200 ,排在他之前的行中薪水大于等于 2200-50 的有 1 行,排在他之后的行中薪水小于等于 2200 + 150 的行没有,所以 count 计数值 cnt3 为 2 (包括自己当前行); cnt2 值相当于小于等于当前行的 SALARY 值的所有行数
 
SELECT
 department_id,
 first_name||' '||last_name employee_name,
 salary,
 COUNT(*) OVER (ORDER BY salary) AS count_by_salary, 
 COUNT(*) OVER (ORDER BY salary RANGE BETWEEN 50 PRECEDING AND 150 FOLLOWING) AS count_by_salary_range
FROM employees
WHERE department_id in (10,20,30);

 
 
(责任编辑:admin)
Tags:Oracle分析函数
责任编辑:admin
返回顶部
------分隔线----------------------------
推荐内容
骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价 骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价