在第一列中按值分组的行和 - T-SQL

时间:2016-12-21 22:42:23

标签: sql sql-server tsql sum

我需要查询将执行colA分组的colB的总和,然后乘以colA的值。在对不同组进行总结之后,所有总和应该以总和加上。 colA中的不同值的数量可以是任意值。

colA    colB
0.25    100
0.25     80
0.10    200
0.50    160
0.10    500
0.10    150

对于给定的示例,数学应该如下:

(100+80)*0.25 + (200+500+150)*0.10 + 160*0.50 = 210

1 个答案:

答案 0 :(得分:2)

如果在这种情况下订单确实很重要,你可以这样做:

SELECT SUM(Total) AS GrandTotal
FROM (
SELECT  t.ColA, t.ColA * SUM(t.ColB) AS Total
FROM    dbo.Table1 AS t
GROUP BY t.ColA
    ) AS A

但这应该适用于这种情况:

SELECT SUM(ColA * ColB)
FROM dbo.Table1