如何在sql server中找到列的不同总和?

时间:2014-04-04 04:16:32

标签: sql sql-server-2008

我有一个像这样结构的表:

 lineID  lineItemPrice
    1            20
    2            25
    3            27
    4            30
    4            30 
    4            30

我想得到lineItemPrice的总和,其中lineId是不同的。 我不确定sql查询应该是什么?请帮忙。

输出应为102。

5 个答案:

答案 0 :(得分:1)

我不知道你是否在寻找这个:

select
   sum(lineItemPrice), lineID
from
   table
group by lineID

或者这个:

select
   sum(lineItemPrice)
from
   (select distinct lineID, lineItemPrice from table)

如果你想要整个表格的总和:

select
   sum(lineItemPrice)
from
   table

第一个会给出结果,总结所有lineItemPrice的各自的lineID'

 lineID  lineItemPrice
    1            20
    2            25
    3            27
    4            90

第二个将对所有这些不同的记录求和,将 102 作为答案

 lineID  lineItemPrice
    1            20
    2            25
    3            27
    4            30

第三个:

lineItemPrice
   162

答案 1 :(得分:1)

试试这个:

SELECT SUM(lineItemPrice) as TotalSum FROM
(SELECT lineItemPrice
FROM TableName
GROUP BY lineID,lineITemPrice) T

结果:

TOTALSUM
102

请参阅SQL Fiddle中的结果。

答案 2 :(得分:1)

请尝试:

select 
    SUM(lineItemPrice) lineItemPrice 
from(
    select 
        distinct lineID, lineItemPrice 
    From tbl
)x

如果lineID lineITemPrice用于相同的值对,则可以使用以下查询。

select
    SUM(DISTINCT lineItemPrice) lineItemPrice 
From tbl

答案 3 :(得分:0)

这应该有效:

Select  lineID, SUM(lineItemPrice) Total From YourTableName Group By lineID

很简单。

GROUP BY语句与聚合函数(我们在此使用SUM函数)一起使用,将结果集分组为一列或多列。

答案 4 :(得分:0)

为什么不这个

SELECT * FROM 
(
Select  lineID, SUM(lineItemPrice) Over(Partition By lineID) Total 
From TableName 
  ) T
Group By lineID,Total

<强> Fiddle Demo

输出:

  lineID     lineItemPrice
    1            20
    2            25
    3            27
    4            90