Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

使用 OLAP

使用 OLAP 函数

窗口函数


使用窗口函数,您可以通过计算每行周围窗口上的集合值来分析数据。结果集会返回表示一组行的摘要值。您可以使用窗口函数计算一家公司在一段指定时间内的销售数据的移动平均值。

除 LIST 以外的任何集合函数都可以与窗口函数联合使用。

有关可用集合函数的列表,请参见集合函数

注意 
您可以使用与报告函数相同的统计函数。

下图显示了分区及其包含的窗口视图。该窗口通过一定数量的行定义,并通过该分区向下分布。

A graphical depiction of a partition and a window view within the partition.
示例 

下面的示例显示了一个窗口函数。查询返回一个结果集,该结果集按部门划分数据,然后提供员工薪水的累计汇总(从在公司的时间最长的员工开始)。结果集只包括居住在加利福尼亚、犹他州、纽约或亚利桑那州的那些雇员。Sum Salary 列提供了雇员薪水的累计总额。

SELECT dept_id, emp_lname, start_date, salary,
SUM(salary) OVER (PARTITION BY dept_id
ORDER BY start_date
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS "Sum_Salary"
FROM employee
WHERE state IN ('CA', 'UT', 'NY', 'AZ') AND dept_id IN ('100', '200')
ORDER BY dept_id, start_date;

下面的表是查询的结果集。结果集按部门划分。

A result set, partitioned by department, showing a list of employees in California, Arizona, Utah, and New York and ranked in descending order according to salary and providing a cumulative total by department.

对于部门 100,来自加利福尼亚、犹他州、纽约或亚利桑那州的雇员的薪水累计总额是 $434,091.69,而部门 200 的雇员的薪水累计总额是 $250,200.00。


Collection Contents 上一页 下一页 PDF