복붙노트

[SQL] SQL 서버의 열의 합계를 실행 얻는 방법

SQL

SQL 서버의 열의 합계를 실행 얻는 방법

안녕 나는 테이블 청구서에서 이름 수량과 열이 나는이 같은 수량 컬럼의 누적 합계를 보여 열을 원하는 :

Qty   Run_Sum
1      1
2      3
3      6
4      10
5      15

좀 thankx를 실행 할 몇 가지 적절한 방법을 제안

해결법

  1. ==============================

    1.당신이 지원하는 윈도우 기능을 RDBMS 경우,

    당신이 지원하는 윈도우 기능을 RDBMS 경우,

    SQL 서버 2012

    SELECT  Qty,
            SUM(Qty) OVER (ORDER BY Qty) AS CumulativeTOTAL
    FROM    tableName
    

  2. ==============================

    2.SQL 휘티 d 혀라도

    SQL 휘티 d 혀라도

    SELECT Qty,
    SUM(Qty) OVER (ORDER BY Qty) Run_Sum
    FROM t ORDER BY Qty
    

    SQLServer에 2012 년 이전 :

    select Qty,
    (select sum(Qty) from t where Qty<=t1.Qty)
    from t t1 order by Qty
    

    SQL 휘티 d 혀라도

    또는 또한 당신은 부질없이 그것을 할 수 있습니다 :

    select t1.Qty, sum(t2.Qty)
    from t t1 
    join t t2 on (t1.Qty>=t2.Qty)
    group by t1.Qty
    order by t1.Qty
    

    SQL 휘티 d 혀라도

  3. ==============================

    3.여기에 오라클 / 분석 기능을 사용하여 샘플입니다 :

    여기에 오라클 / 분석 기능을 사용하여 샘플입니다 :

    select id, qty, sum(qty) over(order by id asc) run_sum
    from test;
    

    http://www.sqlfiddle.com/#!4/3d149/1

  4. ==============================

    4.이 옵션을 선택합니다

    이 옵션을 선택합니다

    DECLARE @TEMP table
    (
        ID int IDENTITY(1,1),
        QUANTITY int
    )
    
    INSERT INTO @TEMP
    SELECT 1 UNION ALL
    SELECT 2 UNION ALL
    SELECT 3 UNION ALL
    SELECT 4 UNION ALL
    SELECT 8 UNION ALL
    SELECT 7 UNION ALL
    SELECT 5 UNION ALL
    SELECT 1
    
    SELECT t.QUANTITY AS Qty, SUM(t1.QUANTITY) AS Run_Sum
    FROM @TEMP t
    INNER JOIN @TEMP t1
    ON t1.ID <= t.ID
    GROUP BY t.ID, t.QUANTITY
    ORDER BY t.ID
    
  5. ==============================

    5.

    ;with cte as (
      select top 1 Qty, Qty as RunningSum
      from Bills
      order by Qty
    
      union all
    
      select t.Qty, cte.RunningSum + t.Qty
      from cte
      inner join Bills t on cte.Qty + 1 = t.Qty
    )
    select * from cte
    
  6. ==============================

    6.@mahmud : 이주는 무슨보기

    @mahmud : 이주는 무슨보기

    DECLARE @Bills table
    (
        QUANTITY int
    )
    
    INSERT INTO @Bills
    SELECT 2 UNION ALL
    SELECT 6 UNION ALL
    SELECT 7 UNION ALL
    SELECT 1 UNION ALL
    SELECT 3 UNION ALL
    SELECT -5 UNION ALL
    SELECT 5 UNION ALL
    select 1
    
    ;with cte as (
      select top 1 QUANTITY, QUANTITY as RunningSum
      from @Bills
      order by QUANTITY
    
      union all
    
      select t.QUANTITY, cte.RunningSum + t.QUANTITY
      from cte
      inner join @Bills t on cte.QUANTITY + 1 = t.QUANTITY
    )
    select * from cte
    
  7. from https://stackoverflow.com/questions/14953294/how-to-get-running-sum-of-a-column-in-sql-server by cc-by-sa and MIT license