我有一个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
答案 0 :(得分:1)
您可以在CASE
和SELECT
中使用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,正如您在结果中指出的那样。