如何对不同列的值求和

时间:2015-11-08 06:24:44

标签: sql sql-server sql-server-2008

我有两列(col1和col 2)col1是VARCHAR数据类型,col2是INT。我有很多重复col1值的记录。现在我需要总结(col2)col1是不同的。我怎么能这样做?

我之前尝试过这样的做法,但没有奏效。

Select distinct 
    col1, sum(col2) as col2 
from mytable 
group by col1

Select sum(col2) 
from
    (Select distinct col1 from mytable)

1 个答案:

答案 0 :(得分:0)

WITH
CTE
AS
(
    SELECT
        col1
        ,col2
        ,ROW_NUMBER() OVER(PARTITION BY col1 ORDER BY col2) AS rn
    FROM mytable
)
SELECT
    SUM(col2) AS SumCol2
FROM CTE
WHERE rn=1
;

如果col1中有多个具有相同值的行,您应该决定要选择哪一行。上面的查询将选择具有最小col2的行。