【问题标题】:Show total quantity for one column显示一列的总量
【发布时间】:2021-02-18 09:57:11
【问题描述】:

我正在寻找正确的查询,它允许我在一行中显示不同交易的总结果。

我的查询如下

select

porch.jspo# as PO,
porch.jslin# as Line,
porch.jsqtyr as QTY,
sum(porch.JSQTYR) over (partition by porch.JSPO#) as TotalQty

from PORCH

where JSPO# = '109394'
and JSPLNT = 'GC'

group by JSPO#, JSLIN#, JSQTYR

结果

 PO     LN    QTY        TotalTy
109394  1   9.00000     1774.00000
109394  1   20.00000    1774.00000
109394  1   125.00000   1774.00000
109394  1   400.00000   1774.00000
109394  1   1220.00000  1774.00000

我正在寻找一个查询,该查询将汇总 QTY 下的所有交易显示这样的结果。

     PO     LN    QTY        
    109394  1  1774.00000

【问题讨论】:

    标签: sql group-by sum aggregate-functions where-clause


    【解决方案1】:

    您应该只按您希望在结果集中唯一的列进行聚合。所以:

    select porch.jspo# as PO, porch.jslin# as Line,
           sum(porch.JSQTYR) as TotalQty
    from PORCH
    where JSPO# = '109394' and JSPLNT = 'GC'
    group by JSPO#, JSLIN#;
    

    我不确定您为什么要为此尝试累积总和。

    【讨论】:

      【解决方案2】:

      那么,就不需要窗口函数了。只需从selectgroup by 子句中删除数量,并使用简单的聚合:

      select jspo# as po, jslin# as line, sum(jsqtyr) as qty
      from porch
      where jspo# = '109394' and jsplnt = 'GC'
      group by jspo#, jslin#
      

      【讨论】:

        猜你喜欢
        • 2016-11-19
        • 2019-05-10
        • 2021-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多