SQL SUM查询修改

时间:2014-10-13 14:55:09

标签: mysql sql sum

我有一个SUM SQL查询,用于在asp.net中显示图表。

它总结了具有相同值的数量,例如:

   Quantity|Total
   --------|-----
       1   | 5
       2   | 10
       3   | 12
       4   | 16
       5   | 5
       6   | 8

基本上,有5个订单,其中数量= 1,有10个订单,其中数量= 2,依此类推。

 SELECT        Quantity, SUM(Quantity) AS Total
 FROM            orders
 GROUP BY Quantity

这就是我的代码。

我想知道如何进行查询,以便得到这个结果。

   Quantity|Total
   --------|-----
       1   | 5
       2   | 10
       3   | 12
       4   | 16
       5   | 5
       6   | 8
       6+  | 5

因此,每个数量超过6的订单,应该加在一起并显示为                         6+ | 5

1 个答案:

答案 0 :(得分:1)

您可以在CASESELECT中使用GROUP BY语句:

SELECT  CASE WHEN Quantity > 6 THEN '6+' ELSE CAST(Quantity AS CHAR(2)) END AS Quantity, 
        SUM(Quantity) AS Total
FROM    orders
GROUP BY CASE WHEN Quantity > 6 THEN '6+' ELSE CAST(Quantity AS CHAR(2)) END;

<强> Example on SQL Fiddle


N.B。基于此声明:

  

基本上,有5个订单,其中数量= 1,有10个订单,其中数量= 2,依此类推。

你预期的结果,听起来你想使用COUNT代替SUM,因为如果有10个订单数量= 2,那么SUM(Quantity)将产生20,而不是10,正如您在结果中指出的那样。

<强> Revised Example on SQL Fiddle