联机分析处理(On-Line Analytical Processing,简称 OLAP)具有在一条 SQL 语句中执行复杂数据分析的功能,从而通过减少对数据库的查询次数来改进性能,而同时又能增加结果值。通过使用对 SQL 语句和窗口函数的扩展,可在 SQL Anywhere 中使用 OLAP 功能。这些 SQL 扩展和函数能够以一种简明的方式实现多维数据分析、数据挖掘、时间序列分析、趋势分析、开销分配、目标寻求以及异常警告,而这些又常常是通过一条 SQL 语句完成的。
SELECT 语句的扩展 利用 SELECT 语句的扩展,您可以将输入行分组、对组执行分析以及将结果加入到最终结果集中。这些扩展包括对 GROUP BY 子句(GROUPING SETS、CUBE 和 ROLLUP 子句)以及 WINDOW 子句的扩展。
利用 GROUP BY 子句的扩展,您可以采用多种方式来划分输入行,从而生成一个可将不同组连接在一起的结果集。您还可以创建一个稀疏多维结果集(也称为数据立方体)以实现数据挖掘分析。最后,这些扩展还提供了小计行和总计行,使得分析起来更为方便。请参见GROUP BY 子句扩展。
将 WINDOW 子句与窗口函数结合使用,能够对成组的输入行进行其它分析。请参见窗口函数。
窗口集合函数 几乎所有的 SQL Anywhere 集合函数均支持可配置滑动窗口概念,在处理输入行时该窗口会随着输入行向下移动。在窗口移动时可对其中的数据执行附加计算,这样便能够以一种比使用语义上等同的自连接查询或相关子查询更为有效的方式进行进一步分析。
例如,窗口集合函数以及 GROUP BY 子句的 CUBE、ROLLUP 和 GROUPING SETS 扩展能够在一条 SQL 语句中有效地计算百分点、移动平均值、累计总和,否则可能会需要自连接、相关子查询、临时表或者所有这三项的某个组合。
您可以使用窗口集合函数获得诸如此类信息:道琼斯工业平均指数的季度移动平均线或者各部门所有雇员及其累计薪资。还可以利用它们来计算方差、标准差、相关和回归测量。请参见窗口集合函数。
窗口秩函数 通过窗口秩函数可组成单语句的 SQL 查询以获得以下信息,如今年发运的产品中其总销售额排名前 10 的产品,或者将订单至少销售给 15 个不同公司的销售人员中排名前 5% 的销售人员。请参见窗口秩函数。
提高 OLAP 性能
GROUP BY 子句扩展
使用 ROLLUP 和 CUBE 作为 GROUPING SETS 的快捷方式
窗口函数
SQL Anywhere 中的窗口函数
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |