SQL:如何计算求和列的行数?

时间:2014-10-21 22:18:27

标签: sql

如何计算求和列的行数?

我已经构建了一个查询,它将显示每个订单中有多少项,但我需要对每个Sum进行计数。我的目标是看看有多少人购买了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

1 个答案:

答案 0 :(得分: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