SQL - Группировать по группам? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть таблица грузов (упрощенно, конечно)

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

Но я хочу получить, сколько клиентов произвело х количество отправлений.Данные, которые мне нужны, выглядят так:

Amount     No of Customers
2          1
3          1

Я не могу понять, как именно.

Ответы [ 2 ]

3 голосов
/ 04 апреля 2019

Сверните ваш запрос как производную таблицу.GROUP BY его результат:

select Amount, count(*) as No_of_Customers
from
(
    SELECT COUNT(*) AS Amount
    FROM CONSIGNMENT
    GROUP BY CUSTOMER
) dt
group by Amount
1 голос
/ 04 апреля 2019

вы можете попробовать ниже - используя подзапрос

select count(distinct customer) as noofcustomer, 'Count'
from
(
SELECT CUSTOMER, COUNT(*) AS 'Count'
FROM CONSIGNMENT
GROUP BY CUSTOMER
)A group by 'Count'
...