我有一个填充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
有没有人有任何想法? 任何帮助非常感谢!谢谢!
答案 0 :(得分:1)
使用您已有的重复查询作为虚拟表:
SELECT SUM (grossSale) grossSale, SUM(vat) vat, SUM(netSale) netSale FROM
(SQL to show duplicates)
答案 1 :(得分:0)
您需要编写将从结果中选择的SELECT
语句。只需将您当前的select
语句包含在SELECT
和SUM
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
知道汇总哪些列。