首页 > 解决方案 > SQL - 按组属性分组?

问题描述

我有一张寄售表(当然是简化的)

CONSIGNMENT_NR    CUSTOMER
1                 1
2                 1
3                 2
4                 2
5                 2

我可以很容易地为每个客户选择他们有多少货物:

SELECT CUSTOMER, COUNT(*) AS 'Count'
FROM CONSIGNMENT
GROUP BY CUSTOMER

这将给我(使用该示例数据):

CUSTOMER   Count
1          2
2          3

但我想要的是得到多少客户做了 x 数量的寄售。我想要的数据如下所示:

Amount     No of Customers
2          1
3          1

我不太明白怎么做。

标签: sqlgroup-bycount

解决方案


将您的查询包装为派生表。GROUP BY结果:

select Amount, count(*) as No_of_Customers
from
(
    SELECT COUNT(*) AS Amount
    FROM CONSIGNMENT
    GROUP BY CUSTOMER
) dt
group by Amount

推荐阅读