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

分区上的Cognos滞后+

  •  0
  • kyleisapenguin  · 技术社区  · 2 年前

    我正试图在cognos中重现这一点: lag(queue_name,1)尊重null over(分区按appl_num顺序按seq_nmbr)

    该逻辑在terradata中运行良好,但无法在cognos中找到使其工作的方法。

    以下完整查询以供进一步参考:

    SELECT
            appl_num,
            UPPER(a.user_ident) as tid,
            seq_nmbr,
            actvy_cd,
            ace_rte_to_state_que as queue_name,
            lag(queue_name,1) respect nulls over (partition by appl_num order by seq_nmbr) as lagg
        
            FROM xyz 
    

    这里的任何帮助都将是伟大的!!!谢谢

    0 回复  |  直到 2 年前
        1
  •  0
  •   dougp    2 年前

    您将需要使用SQL:

    1. 创建查询。
    2. 将SQL对象添加到查询中。
    3. 正确配置SQL对象,包括您的本机SQL代码。

    其他详细信息:

    Cognos不支持 LEAD LAG

    即使Cognos支持 滞后 :我最近需要在Cognos中包含窗口函数的特定功能。虽然Cognos支持窗口功能,但它不支持其他功能。例如,Cognos Analytics将支持。。。

    MIN(Col1) OVER (
      PARTITION BY SRID 
      ORDER BY Col1, Col2
      )
    

    …但不是。。。

    MIN(Col1) OVER (
      PARTITION BY SRID 
      ORDER BY Col1, Col2 
      ROWS BETWEEN 0 FOLLOWING AND UNBOUNDED FOLLOWING
    )
    

    …在其用于数据项表达式的内置函数中,您可以使用普通Cognos方式创建。

    如果您没有在报告中使用SQL对象的能力,请与Cognos Analytics管理员讨论提供适当的功能或支持报告的问题。不幸的是,为了运行使用SQL对象的报表,您必须能够创建和编辑它们。这意味着,即使您有能力,您的用户也可能无法使用该报告。(或者,如果管理员创建了它,也许您无法运行它。)