SQL - 分配计数

时间:2017-10-25 11:17:55

标签: sql

您好我有下表:

 crm_id  | customer_id

jon         12345
jon         12346
ben         12347
sam         12348

我想展示以下内容:

Crm_ID count | Number of customer_ids
1                    2
2                    1

基本上我想计算拥有1,2,3,4,5 + customer_ids的数字crm_ids。

由于

1 个答案:

答案 0 :(得分:2)

一种方法是聚合两次。首先,聚合超过crm_id并生成计数。然后,自己聚合这些计数并生成计数。

SELECT
    cnt AS crm_id_cnt,
    COUNT(*) AS num_customer_ids
FROM
(
    SELECT crm_id, COUNT(DISTINCT customer_id) AS cnt
    FROM yourTable
    GROUP BY crm_id
) t
GROUP BY cnt;

看看下面的一个演示,在MySQL中给出,因为你没有指定一个特定的数据库(尽管我的答案应该在我认为的大多数数据库上运行)。

Rextester