2014-10-21 34 views
0

如何计算总计列的行数?SQL:如何计算总计列的行数?

我已经建立了一个查询,将显示每个订单中有多少项目,但我需要做每个总和的计数。我的目标是看有多少人买了3个项目,有多少买了4,等等

SELECT Orders.id, 
    sum(Quantity) AS "Box Count" 
    FROM OrderLines 
    INNER JOIN Orders ON OrderLines.Order_id = Orders.id 
    INNER JOIN Products ON OrderLines.Product_id = Products.id 
    WHERE (Products.ProductType_id = 2) AND Orders.shipdate > '10/01/2014' 
GROUP BY Orders.id 

它返回这样的:

id Box Count 
----- --------- 
68015   6 
69660   3 
70923   3 
72697   13 

我希望它返回此:

Box Count Total Count 
--------- ----------- 
     3   2 
     6   1 
     13   1 
+0

你尝试计数(...)而不是总数(...) – Dinesh 2014-10-21 22:25:40

回答

1

你可以使用第二个查询:

SELECT 
[Box Count] 
,COUNT(*) AS [Total Count] 
FROM 
(
    SELECT 
    Orders.id, 
    sum(Quantity) AS "Box Count" 
    FROM OrderLines 
    INNER JOIN Orders ON OrderLines.Order_id = Orders.id 
    INNER JOIN Products ON OrderLines.Product_id = Products.id 
    WHERE (Products.ProductType_id = 2) AND Orders.shipdate > '10/01/2014' 
    GROUP BY Orders.id 
) AS InnerQuery 
GROUP BY [Box Count] 
ORDER BY COUNT(*) DESC -- optional 
+0

谢谢!我很感激。 – 2016-01-07 18:43:31