代码之家  ›  专栏  ›  技术社区  ›  A G

SQL Server-sum()列x,但只添加列y一次

  •  2
  • A G  · 技术社区  · 15 年前

    我的桌子是这样的

    A | X | Y
    --+---+--
    1 | 2 | 3
    1 | 4 | 3
    2 | 9 | 1
    2 | 7 | 1
    

    我想要的是将x列和group by a相加,但只加y一次。对于特定的a,y列中的值始终相同。

    当我运行这个时:

    SELECT SUM(X + Y) FROM TABLE GROUP BY A
    

    它给了我:12,18。但我需要9点17分。

    谢谢。

    2 回复  |  直到 15 年前
        1
  •  6
  •   Adriaan Stander    15 年前

    看一看( SUM (Transact-SQL) )

    求和([all distinct]表达式)

    DECLARE @Table TABLE(
            A INT,
            X FLOAT, 
            Y FLOAT
    )
    INSERT INTO @Table SELECT 1,2,3 
    INSERT INTO @Table SELECT 1,4,3 
    INSERT INTO @Table SELECT 2,9,1 
    INSERT INTO @Table SELECT 2,7,1
    
    SELECT  A,
            SUM(X) + SUM(DISTINCT Y) SUMVals
    FROM    @Table
    GROUP BY A
    
        2
  •  4
  •   Daniel Pratt    15 年前
    SELECT SUM(X) + MIN(Y) FROM TABLE GROUP BY A