У меня есть следующий запрос SQL, который показывает количество кластеров, активных для моих пользователей. На каждый 1 license_key приходится n-число идентификаторов кластера.
select cluster_id, license_key, created_time
from events
where created_time >= '2018-11-04' and created_time < '2018-12-03'
and event_name = 'cluster-ping'
group by cluster_id
order by license_key
Это данные:
cluster_id license_key created_at
___________________________________________|_______________|___________________
6D677C4196DB3C1BA84AEBC55CAEE527DDE498C7 111111111111 2018-11-26 17:17:22
CF7BF31A592030E90DAA2BADD632537FA58CD53A 222222222222 2018-11-09 16:55:38
E9A191A125C6632A87629F13E4532C7D09F6C3EE 333333333333 2018-11-24 09:49:48
B92B9F4CE642638CA71829878D27A68E4B831695 444444444444 2018-11-27 19:44:20
26BDDC912E942CC7347D26CA4D72E28E91348E41 555555555555 2018-11-11 14:10:33
F9ABEBEC93C1181635EDE2A1636D709DFD4D8E13 666666666666 2018-11-21 22:06:06
C7664728E8D0C9CAAD1ECC232DADCE00952412BC 666666666666 2018-11-20 18:04:10
FB716F791CB2C2767DB6DE74CD064E95C1A129EA 777777777777 2018-11-18 11:15:30
B5E6EF80FCBA3D3F4CFBD3E7E0477B8E5232CD05 888888888888 2018-11-18 21:08:05
1B1D17334FADBB4D739CE4A940F63E404014A05C 999999999999 2018-11-24 14:00:07
У меня cluster_ids сгруппирован из-за события cluster-ping, которое звонит домой из кластера каждые 6 часов. Их группировка гарантирует, что я получу только один cluster-ping, который указывает на один активный кластер, вместо cluster-pings всего этого одного кластера, которых может быть много на кластер в зависимости от того, как долго кластер жив.
Я хочу отредактировать этот запрос. Я знаю, сколько раз один и тот же license_key появляется более одного раза. Как видно из приведенного выше примера данных, лицензионный ключ 666666666666666 отображается дважды. Я хотел бы знать в отчете, сколько раз license_key имел n-количество cluster_id.
Я пробовал использовать count(license_key) вместо license_key, но ... это явно не сработало.
Извинения - новинка в SQL.






попробуй это:
SELECT license_key, count(cluster_id)
FROM (SELECT cluster_id, license_key, created_time
FROM events
WHERE created_time >= '2018-11-04'
AND created_time < '2018-12-03'
AND event_name = 'cluster-ping'
GROUP BY cluster_id
ORDER BY license_key )
GROUP BY license_key