代码之家  ›  专栏  ›  技术社区  ›  user372724

Oracle中的model子句

  •  5
  • user372724  · 技术社区  · 15 年前

    我最近倾向于用甲骨文的术语,我越是关注,就越吸引我。

    我最近遇到了 MODEL clause 但老实说,我不理解这种行为。有没有人能举几个例子,请告诉我同样的情况。

    提前谢谢

    3 回复  |  直到 11 年前
        1
  •  4
  •   APC    15 年前

    给出了模型的一些例子。 here .

    就我个人而言,我已经看了几次模型,但还没有成功地为它找到一个用例。虽然它首先看起来是有用的,但是有很多地方只有文本工作(而不是绑定或变量),这限制了它的灵活性。例如,在行间计算中,您不能很容易地引用“上一行”或“下一行”,但必须能够通过其属性完全标识它。因此,您不能说“获取上个月具有相同日期的行的值”,但只能对特定日期进行编码。

    它可能被一些分析工具(内部)使用。但作为最终用户工具,我从来没有“得到”过它。我以前建议过,如果你发现一个问题,你认为可以通过应用model子句来解决,去躺下来,直到感觉消失。

        2
  •  4
  •   Lukas Eder    13 年前

    我认为示范条款很容易理解,当你慢慢阅读 official whitepaper . 在我看来,白皮书一步一步地很好地解释了model子句,在示例中一次添加一个特性,在官方文档中省略了最高级的特性。

    从白皮书中,我还发现在实际使用model子句时很容易理解。在一些例子中,使用Excel电子表格之类的操作要简单得多。 MODEL 而不是,例如,使用窗口函数, CONNECT BY 或子查询因子分解。想想Excel。每当要为Excel列定义复杂规则集时,请使用 模型 条款。Excel电子表格规则示例:

    A10 = A9 + A8
    B10 = A10 * 5
    C10 = MAX(A1:A9)
    D10 = C10 / A10
    

    换言之, 模型 是一个非常强大的SQL电子表格!

        3
  •  0
  •   Bob    11 年前

    最好的解释是在官方白皮书中。它使用了sh demo模式,您真的需要安装它。

    http://www.oracle.com/technetwork/middleware/bi-foundation/10gr1-twp-bi-dw-sqlmodel-131067.pdf

    我认为他们没有很好地解释这一点。它基本上允许您将数据加载到数组中,然后使用直接的SQL循环数组,而不必编写过程逻辑。许多术语都基于电子表格术语(它们在Excel帮助中使用)。所以,如果您在Excel中使用它们,这将是令人困惑的。

    他们应该为每个查询绘制一张图片,并显示创建的数组,而不是显示您如何查看数组。语法似乎基于Excel语法。我不确定这是否是所有电子表格工具的共同点。

    它有用途。最常见的是料仓安装。请参见第二个示例。这基本上是一个复杂的分组,按范围分组,但是这个范围可以改变。它需要程序逻辑。这个例子给出了3种实现方法,其中一种是model子句。

    http://www.oracle.com/technetwork/issue-archive/2012/12-mar/o22asktom-1518271.html

    我认为做复杂的电子表格计算的人(通常是经理)可能更容易看到这方面的用途和获得术语。