SQL - 如何计算所选数据的总和?

时间:2014-01-28 14:04:43

标签: mysql sql

我有一个填充6122行的表。我找到了所有重复项并显示它们。这就是我得到的:

description   grossSale  vat       netSale
produce 0055  268        50.11     217.89
product 0055  268        50.11     217.89
product 0009  339        63.39     275.61
product 0065  829        155.29    673.98

我现在希望表格显示grossSale,vat和netSale的总和。如果我使用sum(grossSale)grossSale,它会给我所有6122值的总和,但我只想要显示的4。所以表格看起来像这样:

description   grossSale  vat       netSale
produce 0055  268        50.11     217.89
product 0055  268        50.11     217.89
product 0009  339        63.39     275.61
product 0065  829        155.29    673.98
              1704       318.9     1385.37

有没有人有任何想法? 任何帮助非常感谢!谢谢!

3 个答案:

答案 0 :(得分:1)

使用您已有的重复查询作为虚拟表:

SELECT SUM (grossSale) grossSale,  SUM(vat) vat, SUM(netSale) netSale FROM
    (SQL to show duplicates)

答案 1 :(得分:0)

您需要编写将从结果中选择的SELECT语句。只需将您当前的select语句包含在SELECTSUM GROUP BY

的另一个Description
SELECT Description
   ,SUM(grossSale)
   ,SUM(Vat)
   ,SUM(netSale)
FROM ( SELECT Description
           ,grossSale
           ,Vat
           ,netSale
        FROM MyTable
        WHERE MyColumn = 'SomeValue' ) a
GROUP BY Description

答案 2 :(得分:0)

您可以使用group by with rollup执行此操作。你必须先做group by

select description, sum(grossSale), sum(vat), sum(netSale)
from table t
group by description, grossSale, vat, netSale with rollup;

sum()中使用与group by中相同的列可能看起来很奇怪。这是因为您的行似乎没有唯一标识符。需要sum(),以便rollup知道汇总哪些列。