【问题标题】:Oracle SQL: sum( case when then quantity else 0 END) OVER (partition by...) = can't get right GROUP BY statementOracle SQL: sum( case when then quantity else 0 END) OVER (partition by ...) = can't get right GROUP BY statement
【发布时间】:2011-09-01 14:42:29
【问题描述】:

我正在尝试选择几个不同的总和,其中之一是 OVER (Partition by column_also_in_select_plan)

但是我似乎永远无法正确使用 GROUP BY 语句。

例子:

Select 1, 2, 3, sum(4) over (partition by 3), sum(case when 6 = etc...) 
FROM table
Where filters
GROUP BY ?

感谢任何提示:)

【问题讨论】:

    标签: sql group-by oracle11g windowing


    【解决方案1】:

    同时使用窗口函数进行聚合并没有多大意义,所以我并不奇怪你会感到困惑。在上面的示例中,您可能希望将窗口移动到外部查询,即:

    select 1, 2, 3, sum(sum4) over(partition by 3), ...
    from (
          select 1, 2, 3, sum(4) as sum4
          from table
          where filters
          group by 1, 2, 3
    ) x
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      相关资源
      最近更新 更多