如何查找具有唯一值

时间:2016-02-05 22:02:12

标签: mysql group-by sum

我正在制作财务脚本,并且在每个月末我都需要所有发票的最终总和。如果发票有4行或10行,则每行包含全部金额。

所以我需要找到不同的发票号码,然后总结它们的价值。

SELECT finalprice 
FROM invoices 
GROUP BY invoicenumber;

finalprice

   87.26
  153.72
   10.56
  979.20
  136.20
   47.10
  112.62

当我尝试使用时,这给了我每一个独特的行,但没有总结它们:

SELECT sum(finalprice) 
FROM invoices 
GROUP BY invoicenumber;

总和(最终价格)

  349.04
 1690.92
   10.56
11750.4
  544.8
  141.3
 1351.44

此SUM用于唯一invoicenumber中的每一行,但我需要对每个唯一的发票值求和。

2 个答案:

答案 0 :(得分:0)

只需创建一个删除重复项的派生表

我相信你只想要一个总值,所以不需要一个小组。

SELECT SUM(finalprice) 
FROM (SELECT DISTINCT invoicenumber, finalprice
      FROM invoices) t;

您也可以使用您的版本

SELECT SUM(finalprice) 
FROM (SELECT finalprice 
      FROM invoices 
      GROUP BY invoicenumber) t;

注意:派生表需要别名,所以我只使用t

答案 1 :(得分:0)

最简单的解决方法是除以count()

SELECT sum(finalprice)/count(*)
FROM invoices 
GROUP BY invoicenumber