我有一个我正在做的项目,需要以下几点:
OLAP查询是什么意思?我已经搜索过互联网,我所能找到的就是我必须做一个立方体,并在它上应用查询。如何在RDBMS上编写OLAP查询?我有一个示例:表标准化(订单、产品、客户、分公司、销售)
我想在上面的表上写一个OLAP查询。我将Oracle Express与SQL Developer结合使用。
发布于 2012-12-16 10:25:55
有些SQL函数有时被称为“分析”、“窗口”或"OLAP",这取决于您使用的RDBMS。在某些场景中,它们可以提供巨大的性能改进,通常是比较同一组数据中的行,否则需要进行自连接。
当你使用甲骨文的时候,我会衷心地建议你访问asktom.oracle.com并搜索“分析岩石”--你会发现一些很好的例子,这些例子解释得很好,而且比仅仅阅读就在这里。文档要容易得多。
注意:它们不是严格的“关系”,因为关系理论没有处理元组的顺序;它们是在查询的其他部分之后执行的--即在过滤和聚合之后;它们在较小程度上由某些数据库实现。
我看到Oracle也有一个单独的OLAP产品来处理多维数据集,但是这是企业版的一个单独的许可选项,所以如果您使用Express版本,我不认为这就是您所指的。
编辑
这里有一个简单的例子,它大致基于您的数据模型,它显示了如何使用分析函数来获得运行的总数,没有它们并不简单:-
select
o.customerid,
o.orderid,
o.orderdate,
p.price,
sum (p.price) over (partition by o.customerid order by o.orderdate) running_total
from orders o
inner join sales s on o.orderid = s.orderid
inner join product p on s.productid = p.productid这给出了(对于我输入的一些简单数据):
CUSTOMERID ORDERID ORDERDATE PRICE RUNNING_TOTAL
-------------------- -------------------- --------- ----- -------------
1 1 01-JAN-12 30 30
1 2 01-MAR-12 30 60
1 3 01-APR-12 30 90
1 4 01-MAY-12 30 120 https://stackoverflow.com/questions/13900229
复制相似问题